Function at 0x4e8af0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 8]
push ebx
push esi
push edi
movzx ecx, byte [edx]
mov eax, ecx
push 4
pop ebx
cmp eax, 0x2e
jg 0x4e8c10
je 0x4e8bf6
sub eax, 9
cmp eax, 0x24
ja case.0x4e8b23.11
movzx eax, byte [eax + 0x4e9050]
jmp dword [eax*4 + 0x4e901c]
movzx eax, byte [edx + 1]
xor esi, esi
inc esi
test byte [eax + 0x592160], 1
je 0x4e8b48
inc esi
movzx ecx, byte [esi + edx]
test byte [ecx + 0x592160], 1
jne 0x4e8b3a
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x97
mov eax, esi
jmp 0x4e9015
cmp byte [edx + 1], 0x2d
jne 0x4e8b77
movzx eax, byte [edx + 2]
push 2
pop esi
jmp 0x4e8b71
cmp eax, 0xa
je 0x4e8b48
inc esi
movzx eax, byte [esi + edx]
test eax, eax
jne 0x4e8b67
jmp 0x4e8b48
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x5a
xor eax, eax
inc eax
jmp 0x4e9015
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x16
jmp 0x4e8b80
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x17
jmp 0x4e8b80
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x59
jmp 0x4e8b80
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x5b
jmp 0x4e8b80
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x5d
jmp 0x4e8b80
cmp byte [edx + 1], 0x3d
mov eax, dword [ebp + 0xc]
push 2
je 0x4e8bd5
mov dword [eax], 0x96
jmp 0x4e8dcc
mov dword [eax], 0x4e
jmp 0x4e8dcc
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x1a
jmp 0x4e8b80
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x55
jmp 0x4e8b80
movzx eax, byte [edx + 1]
test byte [eax + 0x592160], bl
jne 0x4e8c62
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x7a
jmp 0x4e8b80
cmp eax, 0x3f
jg 0x4e8e2e
je 0x4e8dfd
cmp eax, 0x3b
jg 0x4e8d5e
je 0x4e8d51
cmp eax, 0x2f
je 0x4e8d0b
jle case.0x4e8b23.11
cmp eax, 0x39
jle 0x4e8c62
cmp eax, 0x3a
je case.0x4e8b23.35
test byte [ecx + 0x592160], 0x46
jne 0x4e8f75
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x96
jmp 0x4e8b80
mov edi, dword [ebp + 0xc]
xor esi, esi
mov dword [edi], 0x84
movzx eax, byte [edx]
jmp 0x4e8c77
inc esi
movzx eax, byte [esi + edx]
test byte [eax + 0x592160], bl
jne 0x4e8c72
cmp byte [esi + edx], 0x2e
jne 0x4e8c98
inc esi
movzx eax, byte [esi + edx]
test byte [eax + 0x592160], bl
jne 0x4e8c85
mov dword [edi], 0x85
mov al, byte [esi + edx]
cmp al, 0x65
je 0x4e8ca3
cmp al, 0x45
jne 0x4e8ce1
mov cl, byte [esi + edx + 1]
movzx eax, cl
test byte [eax + 0x592160], bl
jne 0x4e8cc9
cmp cl, 0x2b
je 0x4e8cbc
cmp cl, 0x2d
jne 0x4e8ce1
movzx eax, byte [esi + edx + 2]
test byte [eax + 0x592160], bl
je 0x4e8ce1
add esi, 2
jmp 0x4e8ccf
inc esi
movzx eax, byte [esi + edx]
test byte [eax + 0x592160], bl
jne 0x4e8cce
mov dword [edi], 0x85
movzx eax, byte [esi + edx]
test byte [eax + 0x592160], 0x46
je 0x4e8b51
inc esi
mov dword [edi], 0x96
movzx ecx, byte [esi + edx]
test byte [ecx + 0x592160], 0x46
jne 0x4e8cf2
jmp 0x4e8b51
cmp byte [edx + 1], 0x2a
jne 0x4e8d43
mov cl, byte [edx + 2]
test cl, cl
je 0x4e8d43
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x4e8d29
cmp byte [eax + edx], 0x2f
je 0x4e8d34
movzx ecx, byte [eax + edx]
test ecx, ecx
je 0x4e8d35
inc eax
jmp 0x4e8d1e
inc eax
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x97
jmp 0x4e9015
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x5c
jmp 0x4e8b80
mov ecx, dword [ebp + 0xc]
xor eax, eax
inc eax
mov dword [ecx], eax
jmp 0x4e9015
sub eax, 0x3c
je 0x4e8db8
sub eax, 1
je 0x4e8da0
sub eax, 1
jne case.0x4e8b23.11
movzx eax, byte [edx + 1]
cmp eax, 0x3d
jne 0x4e8d85
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x53
jmp 0x4e8dca
cmp eax, 0x3e
mov eax, dword [ebp + 0xc]
jne 0x4e8d95
mov dword [eax], 0x58
jmp 0x4e8dca
mov dword [eax], 0x50
jmp 0x4e8b80
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x4f
xor eax, eax
cmp byte [edx + 1], 0x3d
sete al
inc eax
jmp 0x4e9015
movzx eax, byte [edx + 1]
cmp eax, 0x3d
jne 0x4e8dd2
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x51
push 2
pop eax
jmp 0x4e9015
cmp eax, 0x3e
jne 0x4e8de2
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x4e
jmp 0x4e8dca
cmp eax, 0x3c
mov eax, dword [ebp + 0xc]
jne 0x4e8df2
mov dword [eax], 0x57
jmp 0x4e8dca
mov dword [eax], 0x52
jmp 0x4e8b80
mov eax, dword [ebp + 0xc]
xor esi, esi
push 4
pop ebx
inc esi
mov dword [eax], 0x87
movzx eax, byte [edx + 1]
test byte [eax + 0x592160], bl
je 0x4e8b51
inc esi
movzx ecx, byte [esi + edx]
test byte [ecx + 0x592160], bl
jne 0x4e8e1c
jmp 0x4e8b51
sub eax, 0x40
je case.0x4e8b23.35
sub eax, 0x18
je 0x4e8f11
sub eax, 3
je 0x4e8ee6
sub eax, 5
je case.0x4e8b23.34
sub eax, 0x18
je 0x4e8f11
sub eax, 4
je 0x4e8e74
dec eax
sub eax, 1
jne case.0x4e8b23.11
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x60
jmp 0x4e8b80
cmp byte [edx + 1], 0x7c
mov eax, dword [ebp + 0xc]
je 0x4e8e88
mov dword [eax], 0x56
jmp 0x4e8b80
mov dword [eax], 0x5e
jmp 0x4e8dca
movzx edi, byte [edx + 1]
xor esi, esi
inc esi
jmp 0x4e8eaf
cmp edi, ecx
jne 0x4e8eaa
movzx eax, byte [edx + esi + 1]
cmp eax, ecx
jne 0x4e8eb3
inc esi
inc esi
movzx edi, byte [esi + edx]
test edi, edi
jne 0x4e8e9c
cmp edi, 0x27
jne 0x4e8ec9
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x61
lea eax, [esi + 1]
jmp 0x4e9015
test edi, edi
je 0x4e8ed8
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x1b
jmp 0x4e8ec1
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x96
jmp 0x4e8b51
xor eax, eax
inc eax
jmp 0x4e8ef4
movzx ecx, byte [eax + edx]
test ecx, ecx
je 0x4e8ef9
inc eax
cmp ecx, 0x5d
jne 0x4e8eeb
cmp ecx, 0x5d
mov edx, 0x96
mov ecx, dword [ebp + 0xc]
push 0x1b
pop esi
cmove edx, esi
mov dword [ecx], edx
jmp 0x4e9015
cmp byte [edx + 1], 0x27
jne case.0x4e8b23.11
mov esi, dword [ebp + 0xc]
push 2
pop ecx
mov dword [esi], 0x86
movzx eax, byte [edx + 2]
jmp 0x4e8f32
inc ecx
movzx eax, byte [ecx + edx]
test byte [eax + 0x592160], 8
jne 0x4e8f2d
cmp byte [ecx + edx], 0x27
jne 0x4e8f51
mov eax, ecx
and eax, 0x80000001
jns 0x4e8f4f
dec eax
or eax, 0xfffffffe
inc eax
je 0x4e8f65
mov dword [esi], 0x96
jmp 0x4e8f5e
cmp al, 0x27
je 0x4e8f65
inc ecx
mov al, byte [ecx + edx]
test al, al
jne 0x4e8f59
cmp byte [ecx + edx], 0
je 0x4e9013
inc ecx
jmp 0x4e9013
movzx eax, byte [edx + 1]
xor esi, esi
inc esi
jmp 0x4e8f83
inc esi
movzx eax, byte [esi + edx]
test byte [eax + 0x592160], 0x46
jne 0x4e8f7e
push esi
push edx
call fcn.004d47cf
pop ecx
pop ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x4e8b51
mov edi, dword [ebp + 0xc]
xor ecx, ecx
xor esi, esi
inc ecx
mov dword [edi], 0x87
movzx ebx, byte [edx + 1]
test ebx, ebx
je 0x4e900d
movzx eax, bl
test byte [eax + 0x592160], 0x46
je 0x4e8fc4
inc esi
jmp 0x4e8fd9
cmp ebx, 0x28
jne 0x4e8fcd
test esi, esi
jg 0x4e8fe4
cmp ebx, 0x3a
jne 0x4e9009
cmp byte [edx + ecx + 1], bl
jne 0x4e9009
inc ecx
inc ecx
movzx ebx, byte [ecx + edx]
test ebx, ebx
jne 0x4e8fb5
jmp 0x4e9009
inc ecx
movzx ebx, byte [ecx + edx]
test ebx, ebx
je 0x4e8ffb
test byte [ebx + 0x592160], 1
jne 0x4e8ffb
cmp ebx, 0x29
jne 0x4e8fe4
cmp ebx, 0x29
jne 0x4e9003
inc ecx
jmp 0x4e9009
mov dword [edi], 0x96
test esi, esi
jne 0x4e9013
mov dword [edi], 0x96
mov eax, ecx
pop edi
pop esi
pop ebx
pop ebp
ret