Function at 0x4a8c4e
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 ecx, 0x2e
ja 0x4a8d6e
je 0x4a8d54
sub eax, 9
cmp eax, 0x24
ja case.0x4a8c81.11
movzx eax, byte [eax + 0x4a91e6]
jmp dword [eax*4 + 0x4a91b2]
movzx eax, byte [edx + 1]
xor esi, esi
inc esi
test byte [eax + 0x6f5e98], 1
je 0x4a8ca6
inc esi
movzx ecx, byte [esi + edx]
test byte [ecx + 0x6f5e98], 1
jne 0x4a8c98
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x97
mov eax, esi
jmp 0x4a91ad
cmp byte [edx + 1], 0x2d
jne 0x4a8cd5
movzx eax, byte [edx + 2]
push 2
pop esi
jmp 0x4a8ccf
cmp eax, 0xa
je 0x4a8ca6
inc esi
movzx eax, byte [esi + edx]
test eax, eax
jne 0x4a8cc5
jmp 0x4a8ca6
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x5a
xor eax, eax
inc eax
jmp 0x4a91ad
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x16
jmp 0x4a8cde
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x17
jmp 0x4a8cde
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x59
jmp 0x4a8cde
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x5b
jmp 0x4a8cde
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x5d
jmp 0x4a8cde
cmp byte [edx + 1], 0x3d
mov eax, dword [ebp + 0xc]
push 2
je 0x4a8d33
mov dword [eax], 0x96
jmp 0x4a8f70
mov dword [eax], 0x4e
jmp 0x4a8f70
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x1a
jmp 0x4a8cde
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x55
jmp 0x4a8cde
movzx eax, byte [edx + 1]
test byte [eax + 0x6f5e98], bl
jne 0x4a8dc0
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x7a
jmp 0x4a8cde
cmp ecx, 0x3f
ja 0x4a8fd2
je 0x4a8fa1
cmp ecx, 0x3b
ja 0x4a8f02
je 0x4a8ef5
cmp ecx, 0x2f
je 0x4a8eaf
jbe case.0x4a8c81.11
cmp ecx, 0x39
jbe 0x4a8dc0
cmp ecx, 0x3a
je case.0x4a8c81.35
test byte [ecx + 0x6f5e98], 0x46
jne 0x4a910d
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x96
jmp 0x4a8cde
mov edi, dword [ebp + 0xc]
mov dword [edi], 0x84
mov cl, byte [edx]
cmp cl, 0x30
jne 0x4a8e0f
mov al, byte [edx + 1]
cmp al, 0x78
je 0x4a8ddb
cmp al, 0x58
jne 0x4a8e0f
movzx eax, byte [edx + 2]
test byte [eax + 0x6f5e98], 8
je 0x4a8e0f
movzx eax, byte [edx + 3]
push 3
pop esi
test byte [eax + 0x6f5e98], 8
je 0x4a8caf
inc esi
movzx ecx, byte [esi + edx]
test byte [ecx + 0x6f5e98], 8
jne 0x4a8dfc
jmp 0x4a8caf
xor esi, esi
movzx eax, cl
jmp 0x4a8e1b
inc esi
movzx eax, byte [esi + edx]
test byte [eax + 0x6f5e98], bl
jne 0x4a8e16
cmp byte [esi + edx], 0x2e
jne 0x4a8e3c
inc esi
movzx eax, byte [esi + edx]
test byte [eax + 0x6f5e98], bl
jne 0x4a8e29
mov dword [edi], 0x85
mov al, byte [esi + edx]
cmp al, 0x65
je 0x4a8e47
cmp al, 0x45
jne 0x4a8e85
mov cl, byte [esi + edx + 1]
movzx eax, cl
test byte [eax + 0x6f5e98], bl
jne 0x4a8e6d
cmp cl, 0x2b
je 0x4a8e60
cmp cl, 0x2d
jne 0x4a8e85
movzx eax, byte [esi + edx + 2]
test byte [eax + 0x6f5e98], bl
je 0x4a8e85
add esi, 2
jmp 0x4a8e73
inc esi
movzx eax, byte [esi + edx]
test byte [eax + 0x6f5e98], bl
jne 0x4a8e72
mov dword [edi], 0x85
movzx eax, byte [esi + edx]
test byte [eax + 0x6f5e98], 0x46
je 0x4a8caf
inc esi
mov dword [edi], 0x96
movzx ecx, byte [esi + edx]
test byte [ecx + 0x6f5e98], 0x46
jne 0x4a8e96
jmp 0x4a8caf
cmp byte [edx + 1], 0x2a
jne 0x4a8ee7
mov cl, byte [edx + 2]
test cl, cl
je 0x4a8ee7
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x4a8ecd
cmp byte [eax + edx], 0x2f
je 0x4a8ed8
movzx ecx, byte [eax + edx]
test ecx, ecx
je 0x4a8ed9
inc eax
jmp 0x4a8ec2
inc eax
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x97
jmp 0x4a91ad
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x5c
jmp 0x4a8cde
mov ecx, dword [ebp + 0xc]
xor eax, eax
inc eax
mov dword [ecx], eax
jmp 0x4a91ad
sub eax, 0x3c
je 0x4a8f5c
sub eax, 1
je 0x4a8f44
sub eax, 1
jne case.0x4a8c81.11
movzx eax, byte [edx + 1]
cmp eax, 0x3d
jne 0x4a8f29
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x53
jmp 0x4a8f6e
cmp eax, 0x3e
mov eax, dword [ebp + 0xc]
jne 0x4a8f39
mov dword [eax], 0x58
jmp 0x4a8f6e
mov dword [eax], 0x50
jmp 0x4a8cde
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x4f
xor eax, eax
cmp byte [edx + 1], 0x3d
sete al
inc eax
jmp 0x4a91ad
movzx eax, byte [edx + 1]
cmp eax, 0x3d
jne 0x4a8f76
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x51
push 2
pop eax
jmp 0x4a91ad
cmp eax, 0x3e
jne 0x4a8f86
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x4e
jmp 0x4a8f6e
cmp eax, 0x3c
mov eax, dword [ebp + 0xc]
jne 0x4a8f96
mov dword [eax], 0x57
jmp 0x4a8f6e
mov dword [eax], 0x52
jmp 0x4a8cde
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 + 0x6f5e98], bl
je 0x4a8caf
inc esi
movzx ecx, byte [esi + edx]
test byte [ecx + 0x6f5e98], bl
jne 0x4a8fc0
jmp 0x4a8caf
sub eax, 0x40
je case.0x4a8c81.35
sub eax, 0x18
je 0x4a90b5
sub eax, 3
je 0x4a908a
sub eax, 5
je case.0x4a8c81.34
sub eax, 0x18
je 0x4a90b5
sub eax, 4
je 0x4a9018
dec eax
sub eax, 1
jne case.0x4a8c81.11
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x60
jmp 0x4a8cde
cmp byte [edx + 1], 0x7c
mov eax, dword [ebp + 0xc]
je 0x4a902c
mov dword [eax], 0x56
jmp 0x4a8cde
mov dword [eax], 0x5e
jmp 0x4a8f6e
movzx edi, byte [edx + 1]
xor esi, esi
inc esi
jmp 0x4a9053
cmp edi, ecx
jne 0x4a904e
movzx eax, byte [edx + esi + 1]
cmp eax, ecx
jne 0x4a9057
inc esi
inc esi
movzx edi, byte [esi + edx]
test edi, edi
jne 0x4a9040
cmp edi, 0x27
jne 0x4a906d
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x61
lea eax, [esi + 1]
jmp 0x4a91ad
test edi, edi
je 0x4a907c
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x1b
jmp 0x4a9065
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x96
jmp 0x4a8caf
xor eax, eax
inc eax
jmp 0x4a9098
movzx ecx, byte [eax + edx]
test ecx, ecx
je 0x4a909d
inc eax
cmp ecx, 0x5d
jne 0x4a908f
cmp ecx, 0x5d
mov edx, 0x96
mov ecx, dword [ebp + 0xc]
push 0x1b
pop esi
cmove edx, esi
mov dword [ecx], edx
jmp 0x4a91ad
cmp byte [edx + 1], 0x27
jne case.0x4a8c81.11
mov esi, dword [ebp + 0xc]
push 2
pop ecx
mov dword [esi], 0x86
movzx eax, byte [edx + 2]
jmp 0x4a90d6
inc ecx
movzx eax, byte [ecx + edx]
test byte [eax + 0x6f5e98], 8
jne 0x4a90d1
cmp byte [ecx + edx], 0x27
jne 0x4a90ea
test cl, 1
je 0x4a90fe
mov dword [esi], 0x96
jmp 0x4a90f7
cmp al, 0x27
je 0x4a90fe
inc ecx
mov al, byte [ecx + edx]
test al, al
jne 0x4a90f2
cmp byte [ecx + edx], 0
lea eax, [ecx + 1]
cmove eax, ecx
jmp 0x4a91ad
movzx eax, byte [edx + 1]
xor esi, esi
inc esi
jmp 0x4a911b
inc esi
movzx eax, byte [esi + edx]
test byte [eax + 0x6f5e98], 0x46
jne 0x4a9116
push esi
push edx
call fcn.00493950
pop ecx
pop ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x4a8caf
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 0x4a91a5
movzx eax, bl
test byte [eax + 0x6f5e98], 0x46
je 0x4a915c
inc esi
jmp 0x4a9171
cmp ebx, 0x28
jne 0x4a9165
test esi, esi
jg 0x4a917c
cmp ebx, 0x3a
jne 0x4a91a1
cmp byte [edx + ecx + 1], bl
jne 0x4a91a1
inc ecx
inc ecx
movzx ebx, byte [ecx + edx]
test ebx, ebx
jne 0x4a914d
jmp 0x4a91a1
inc ecx
movzx ebx, byte [ecx + edx]
test ebx, ebx
je 0x4a9193
test byte [ebx + 0x6f5e98], 1
jne 0x4a9193
cmp ebx, 0x29
jne 0x4a917c
cmp ebx, 0x29
jne 0x4a919b
inc ecx
jmp 0x4a91a1
mov dword [edi], 0x96
test esi, esi
jne 0x4a91ab
mov dword [edi], 0x96
mov eax, ecx
pop edi
pop esi
pop ebx
pop ebp
ret