Function at 0x4c68cd
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov ebx, eax
movzx ecx, byte [ebx]
xor esi, esi
inc esi
cmp ecx, 0x2e
push edi
jg 0x4c6a90
je 0x4c6a76
cmp ecx, 0x26
jg 0x4c69e2
je 0x4c69d7
cmp ecx, 0x22
jg 0x4c6977
je 0x4c6d1f
cmp ecx, 9
jl 0x4c6ac7
cmp ecx, 0xa
jle 0x4c6950
cmp ecx, 0xb
jle 0x4c6ac7
cmp ecx, 0xd
jle 0x4c6950
cmp ecx, 0x20
je 0x4c6950
cmp ecx, 0x21
jne 0x4c6ac7
cmp byte [ebx + 1], 0x3d
mov eax, dword [ebp + 8]
push 2
je 0x4c6945
mov dword [eax], 0x90
jmp 0x4c6c62
mov dword [eax], 0x43
jmp 0x4c6c62
movzx eax, byte [ebx + 1]
xor esi, esi
inc esi
jmp 0x4c695e
inc esi
movzx eax, byte [esi + ebx]
push eax
call fcn.004f668f
pop ecx
test eax, eax
jne 0x4c6959
mov eax, dword [ebp + 8]
mov dword [eax], 0x91
jmp 0x4c6ea6
mov eax, ecx
sub eax, 0x23
je 0x4c699a
dec eax
je 0x4c6e1f
dec eax
jne 0x4c6ac7
mov eax, dword [ebp + 8]
mov dword [eax], 0x52
jmp 0x4c6a37
movzx eax, byte [ebx + 1]
push eax
mov edi, esi
call fcn.004f658a
pop ecx
test eax, eax
je 0x4c6e1f
inc edi
movzx eax, byte [edi + ebx]
push eax
call fcn.004f658a
pop ecx
test eax, eax
jne 0x4c69af
cmp edi, esi
jle 0x4c6e1f
mov eax, dword [ebp + 8]
mov dword [eax], 0x7f
mov eax, edi
jmp 0x4c6ea8
mov eax, dword [ebp + 8]
mov dword [eax], 0x4a
jmp 0x4c6a37
mov eax, ecx
sub eax, 0x27
je 0x4c6d1f
dec eax
je 0x4c6a6b
dec eax
je 0x4c6a60
dec eax
je 0x4c6a55
dec eax
je 0x4c6a4a
dec eax
je 0x4c6a3f
dec eax
jne 0x4c6ac7
cmp byte [ebx + 1], 0x2d
jne 0x4c6a2e
movzx ecx, byte [ebx + 2]
push 2
pop eax
jmp 0x4c6a1c
cmp ecx, 0xa
je 0x4c6a20
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x4c6a12
mov ecx, dword [ebp + 8]
mov dword [ecx], 0x93
jmp 0x4c6ea8
mov eax, dword [ebp + 8]
mov dword [eax], 0x4f
xor eax, eax
inc eax
jmp 0x4c6ea8
mov eax, dword [ebp + 8]
mov dword [eax], 0x16
jmp 0x4c6a37
mov eax, dword [ebp + 8]
mov dword [eax], 0x4e
jmp 0x4c6a37
mov eax, dword [ebp + 8]
mov dword [eax], 0x50
jmp 0x4c6a37
mov eax, dword [ebp + 8]
mov dword [eax], 0x14
jmp 0x4c6a37
mov eax, dword [ebp + 8]
mov dword [eax], 0x13
jmp 0x4c6a37
movzx eax, byte [ebx + 1]
push eax
call fcn.004f658a
pop ecx
test eax, eax
jne 0x4c6aef
mov eax, dword [ebp + 8]
mov dword [eax], 0x70
jmp 0x4c6a37
cmp ecx, 0x3f
jg 0x4c6cba
je 0x4c6c93
cmp ecx, 0x3b
jg 0x4c6bf6
je 0x4c6be9
cmp ecx, 0x2f
je 0x4c6ba8
jle 0x4c6ac7
cmp ecx, 0x39
jle 0x4c6aef
cmp ecx, 0x3a
je 0x4c6e1f
test cl, cl
js 0x4c6df4
cmp ecx, 0x1f
jle 0x4c6ae1
cmp byte [ecx + 0x550160], 0
jne 0x4c6df4
mov eax, dword [ebp + 8]
mov dword [eax], 0x90
jmp 0x4c6a37
mov esi, dword [ebp + 8]
movzx eax, byte [ebx]
mov dword [esi], 0x7c
xor edi, edi
jmp 0x4c6b04
inc edi
movzx eax, byte [edi + ebx]
push eax
call fcn.004f658a
pop ecx
test eax, eax
jne 0x4c6aff
cmp byte [edi + ebx], 0x2e
jne 0x4c6b2b
inc edi
movzx eax, byte [edi + ebx]
push eax
call fcn.004f658a
pop ecx
test eax, eax
jne 0x4c6b15
mov dword [esi], 0x7d
lea esi, [edi + ebx]
mov al, byte [esi]
cmp al, 0x65
je 0x4c6b38
cmp al, 0x45
jne 0x4c6b7e
movzx eax, byte [esi + 1]
push eax
call fcn.004f658a
pop ecx
test eax, eax
jne 0x4c6b61
mov al, byte [esi + 1]
cmp al, 0x2b
je 0x4c6b52
cmp al, 0x2d
jne 0x4c6b7e
movzx eax, byte [esi + 2]
push eax
call fcn.004f658a
pop ecx
test eax, eax
je 0x4c6b7e
inc edi
inc edi
jmp 0x4c6b66
inc edi
movzx eax, byte [edi + ebx]
push eax
call fcn.004f658a
pop ecx
test eax, eax
jne 0x4c6b65
mov eax, dword [ebp + 8]
mov dword [eax], 0x7d
movzx eax, byte [edi + ebx]
test al, al
js 0x4c6b9c
cmp eax, 0x1f
jle 0x4c69d0
cmp byte [eax + 0x550160], 0
je 0x4c69d0
mov eax, dword [ebp + 8]
mov dword [eax], 0x90
inc edi
jmp 0x4c6b7e
cmp byte [ebx + 1], 0x2a
jne 0x4c6bdb
mov cl, byte [ebx + 2]
test cl, cl
je 0x4c6bdb
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x4c6bc6
cmp byte [eax + ebx], 0x2f
je 0x4c6bd5
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x4c6a20
inc eax
jmp 0x4c6bbb
inc eax
jmp 0x4c6a20
mov eax, dword [ebp + 8]
mov dword [eax], 0x51
jmp 0x4c6a37
mov eax, dword [ebp + 8]
xor esi, esi
inc esi
mov dword [eax], esi
jmp 0x4c6ea6
mov eax, ecx
sub eax, 0x3c
je 0x4c6c4e
dec eax
je 0x4c6c36
dec eax
jne 0x4c6ac7
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x4c6c1b
mov eax, dword [ebp + 8]
mov dword [eax], 0x48
jmp 0x4c6c60
cmp eax, 0x3e
mov eax, dword [ebp + 8]
jne 0x4c6c2b
mov dword [eax], 0x4d
jmp 0x4c6c60
mov dword [eax], 0x45
jmp 0x4c6a37
mov eax, dword [ebp + 8]
mov dword [eax], 0x44
xor eax, eax
cmp byte [ebx + 1], 0x3d
sete al
inc eax
jmp 0x4c6ea8
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x4c6c68
mov eax, dword [ebp + 8]
mov dword [eax], 0x46
push 2
pop eax
jmp 0x4c6ea8
cmp eax, 0x3e
jne 0x4c6c78
mov eax, dword [ebp + 8]
mov dword [eax], 0x43
jmp 0x4c6c60
cmp eax, 0x3c
mov eax, dword [ebp + 8]
jne 0x4c6c88
mov dword [eax], 0x4c
jmp 0x4c6c60
mov dword [eax], 0x47
jmp 0x4c6a37
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [eax], 0x80
movzx eax, byte [ebx + 1]
inc esi
jmp 0x4c6caa
inc esi
movzx eax, byte [esi + ebx]
push eax
call fcn.004f658a
pop ecx
test eax, eax
jne 0x4c6ca5
jmp 0x4c6ea6
mov eax, ecx
sub eax, 0x40
je 0x4c6e1f
sub eax, 0x18
je 0x4c6d90
sub eax, 3
je 0x4c6d61
sub eax, 5
je 0x4c6d1f
sub eax, 0x18
je 0x4c6d90
sub eax, 4
je 0x4c6d00
dec eax
dec eax
jne 0x4c6ac7
mov eax, dword [ebp + 8]
mov dword [eax], 0x57
jmp 0x4c6a37
cmp byte [ebx + 1], 0x7c
mov eax, dword [ebp + 8]
je 0x4c6d14
mov dword [eax], 0x4b
jmp 0x4c6a37
mov dword [eax], 0x53
jmp 0x4c6c60
movzx edx, byte [ebx + 1]
xor eax, eax
inc eax
test edx, edx
je 0x4c6d53
cmp edx, ecx
jne 0x4c6d38
movzx esi, byte [ebx + eax + 1]
cmp esi, ecx
jne 0x4c6d41
inc eax
inc eax
movzx edx, byte [eax + ebx]
test edx, edx
jne 0x4c6d2a
test edx, edx
je 0x4c6d53
mov ecx, dword [ebp + 8]
mov dword [ecx], 0x58
jmp 0x4c6c48
mov ecx, dword [ebp + 8]
mov dword [ecx], 0x90
jmp 0x4c6ea8
xor eax, eax
inc eax
jmp 0x4c6d6f
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x4c6d74
inc eax
cmp ecx, 0x5d
jne 0x4c6d66
xor edx, edx
cmp ecx, 0x5d
mov ecx, dword [ebp + 8]
setne dl
dec edx
and edx, 0xffffff87
add edx, 0x90
mov dword [ecx], edx
jmp 0x4c6ea8
cmp byte [ebx + 1], 0x27
jne 0x4c6ac7
mov esi, dword [ebp + 8]
movzx eax, byte [ebx + 2]
push 2
mov dword [esi], 0x7e
pop edi
jmp 0x4c6dc7
cmp eax, 0x27
je 0x4c6dcb
push eax
call fcn.004f660e
pop ecx
test eax, eax
jne 0x4c6dc2
mov dword [esi], 0x90
inc edi
movzx eax, byte [edi + ebx]
test eax, eax
jne 0x4c6dac
mov ecx, edi
and ecx, 0x80000001
jns 0x4c6dda
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x4c6de0
test eax, eax
jne 0x4c6dee
mov dword [esi], 0x90
test eax, eax
je 0x4c69d0
inc edi
jmp 0x4c69d0
xor edi, edi
inc edi
movzx eax, byte [edi + ebx]
test al, al
js 0x4c6e0d
cmp eax, 0x1f
jle 0x4c6e10
cmp byte [eax + 0x550160], 0
je 0x4c6e10
inc edi
jmp 0x4c6df7
call fcn.004c6857
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
jmp 0x4c69d0
mov eax, dword [ebp + 8]
and dword [ebp - 4], 0
mov dword [eax], 0x80
movzx eax, byte [ebx + 1]
test eax, eax
je 0x4c6e9d
test al, al
js 0x4c6e5f
cmp eax, 0x1f
jle 0x4c6e46
cmp byte [eax + 0x550160], 0
jne 0x4c6e5f
cmp eax, 0x28
jne 0x4c6e51
cmp dword [ebp - 4], 0
jg 0x4c6e6d
cmp eax, 0x3a
jne 0x4c6e97
cmp byte [ebx + esi + 1], al
jne 0x4c6e97
inc esi
jmp 0x4c6e62
inc dword [ebp - 4]
inc esi
movzx eax, byte [esi + ebx]
test eax, eax
jne 0x4c6e34
jmp 0x4c6e97
inc esi
movzx edi, byte [esi + ebx]
test edi, edi
je 0x4c6e86
push edi
call fcn.004f668f
pop ecx
test eax, eax
jne 0x4c6e86
cmp edi, 0x29
jne 0x4c6e6d
cmp edi, 0x29
jne 0x4c6e8e
inc esi
jmp 0x4c6e97
mov eax, dword [ebp + 8]
mov dword [eax], 0x90
cmp dword [ebp - 4], 0
jne 0x4c6ea6
mov eax, dword [ebp + 8]
mov dword [eax], 0x90
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret