Function at 0x48c673
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 0x48c793
je 0x48c779
sub eax, 9
cmp eax, 0x24
ja case.0x48c6a6.11
movzx eax, byte [eax + 0x48cbd3]
jmp dword [eax*4 + 0x48cb9f]
movzx eax, byte [edx + 1]
xor esi, esi
inc esi
test byte [eax + 0x632098], 1
je 0x48c6cb
inc esi
movzx ecx, byte [esi + edx]
test byte [ecx + 0x632098], 1
jne 0x48c6bd
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x97
mov eax, esi
jmp 0x48cb98
cmp byte [edx + 1], 0x2d
jne 0x48c6fa
movzx eax, byte [edx + 2]
push 2
pop esi
jmp 0x48c6f4
cmp eax, 0xa
je 0x48c6cb
inc esi
movzx eax, byte [esi + edx]
test eax, eax
jne 0x48c6ea
jmp 0x48c6cb
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x5a
xor eax, eax
inc eax
jmp 0x48cb98
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x16
jmp 0x48c703
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x17
jmp 0x48c703
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x59
jmp 0x48c703
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x5b
jmp 0x48c703
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x5d
jmp 0x48c703
cmp byte [edx + 1], 0x3d
mov eax, dword [ebp + 0xc]
push 2
je 0x48c758
mov dword [eax], 0x96
jmp 0x48c94f
mov dword [eax], 0x4e
jmp 0x48c94f
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x1a
jmp 0x48c703
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x55
jmp 0x48c703
movzx eax, byte [edx + 1]
test byte [eax + 0x632098], bl
jne 0x48c7e5
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x7a
jmp 0x48c703
cmp eax, 0x3f
jg 0x48c9b1
je 0x48c980
cmp eax, 0x3b
jg 0x48c8e1
je 0x48c8d4
cmp eax, 0x2f
je 0x48c88e
jle case.0x48c6a6.11
cmp eax, 0x39
jle 0x48c7e5
cmp eax, 0x3a
je case.0x48c6a6.35
test byte [ecx + 0x632098], 0x46
jne 0x48caf8
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x96
jmp 0x48c703
mov edi, dword [ebp + 0xc]
xor esi, esi
mov dword [edi], 0x84
movzx eax, byte [edx]
jmp 0x48c7fa
inc esi
movzx eax, byte [esi + edx]
test byte [eax + 0x632098], bl
jne 0x48c7f5
cmp byte [esi + edx], 0x2e
jne 0x48c81b
inc esi
movzx eax, byte [esi + edx]
test byte [eax + 0x632098], bl
jne 0x48c808
mov dword [edi], 0x85
mov al, byte [esi + edx]
cmp al, 0x65
je 0x48c826
cmp al, 0x45
jne 0x48c864
mov cl, byte [esi + edx + 1]
movzx eax, cl
test byte [eax + 0x632098], bl
jne 0x48c84c
cmp cl, 0x2b
je 0x48c83f
cmp cl, 0x2d
jne 0x48c864
movzx eax, byte [esi + edx + 2]
test byte [eax + 0x632098], bl
je 0x48c864
add esi, 2
jmp 0x48c852
inc esi
movzx eax, byte [esi + edx]
test byte [eax + 0x632098], bl
jne 0x48c851
mov dword [edi], 0x85
movzx eax, byte [esi + edx]
test byte [eax + 0x632098], 0x46
je 0x48c6d4
inc esi
mov dword [edi], 0x96
movzx ecx, byte [esi + edx]
test byte [ecx + 0x632098], 0x46
jne 0x48c875
jmp 0x48c6d4
cmp byte [edx + 1], 0x2a
jne 0x48c8c6
mov cl, byte [edx + 2]
test cl, cl
je 0x48c8c6
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x48c8ac
cmp byte [eax + edx], 0x2f
je 0x48c8b7
movzx ecx, byte [eax + edx]
test ecx, ecx
je 0x48c8b8
inc eax
jmp 0x48c8a1
inc eax
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x97
jmp 0x48cb98
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x5c
jmp 0x48c703
mov ecx, dword [ebp + 0xc]
xor eax, eax
inc eax
mov dword [ecx], eax
jmp 0x48cb98
sub eax, 0x3c
je 0x48c93b
sub eax, 1
je 0x48c923
sub eax, 1
jne case.0x48c6a6.11
movzx eax, byte [edx + 1]
cmp eax, 0x3d
jne 0x48c908
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x53
jmp 0x48c94d
cmp eax, 0x3e
mov eax, dword [ebp + 0xc]
jne 0x48c918
mov dword [eax], 0x58
jmp 0x48c94d
mov dword [eax], 0x50
jmp 0x48c703
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x4f
xor eax, eax
cmp byte [edx + 1], 0x3d
sete al
inc eax
jmp 0x48cb98
movzx eax, byte [edx + 1]
cmp eax, 0x3d
jne 0x48c955
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x51
push 2
pop eax
jmp 0x48cb98
cmp eax, 0x3e
jne 0x48c965
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x4e
jmp 0x48c94d
cmp eax, 0x3c
mov eax, dword [ebp + 0xc]
jne 0x48c975
mov dword [eax], 0x57
jmp 0x48c94d
mov dword [eax], 0x52
jmp 0x48c703
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 + 0x632098], bl
je 0x48c6d4
inc esi
movzx ecx, byte [esi + edx]
test byte [ecx + 0x632098], bl
jne 0x48c99f
jmp 0x48c6d4
sub eax, 0x40
je case.0x48c6a6.35
sub eax, 0x18
je 0x48ca94
sub eax, 3
je 0x48ca69
sub eax, 5
je case.0x48c6a6.34
sub eax, 0x18
je 0x48ca94
sub eax, 4
je 0x48c9f7
dec eax
sub eax, 1
jne case.0x48c6a6.11
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x60
jmp 0x48c703
cmp byte [edx + 1], 0x7c
mov eax, dword [ebp + 0xc]
je 0x48ca0b
mov dword [eax], 0x56
jmp 0x48c703
mov dword [eax], 0x5e
jmp 0x48c94d
movzx edi, byte [edx + 1]
xor esi, esi
inc esi
jmp 0x48ca32
cmp edi, ecx
jne 0x48ca2d
movzx eax, byte [edx + esi + 1]
cmp eax, ecx
jne 0x48ca36
inc esi
inc esi
movzx edi, byte [esi + edx]
test edi, edi
jne 0x48ca1f
cmp edi, 0x27
jne 0x48ca4c
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x61
lea eax, [esi + 1]
jmp 0x48cb98
test edi, edi
je 0x48ca5b
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x1b
jmp 0x48ca44
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x96
jmp 0x48c6d4
xor eax, eax
inc eax
jmp 0x48ca77
movzx ecx, byte [eax + edx]
test ecx, ecx
je 0x48ca7c
inc eax
cmp ecx, 0x5d
jne 0x48ca6e
cmp ecx, 0x5d
mov edx, 0x96
mov ecx, dword [ebp + 0xc]
push 0x1b
pop esi
cmove edx, esi
mov dword [ecx], edx
jmp 0x48cb98
cmp byte [edx + 1], 0x27
jne case.0x48c6a6.11
mov esi, dword [ebp + 0xc]
push 2
pop ecx
mov dword [esi], 0x86
movzx eax, byte [edx + 2]
jmp 0x48cab5
inc ecx
movzx eax, byte [ecx + edx]
test byte [eax + 0x632098], 8
jne 0x48cab0
cmp byte [ecx + edx], 0x27
jne 0x48cad4
mov eax, ecx
and eax, 0x80000001
jns 0x48cad2
dec eax
or eax, 0xfffffffe
inc eax
je 0x48cae8
mov dword [esi], 0x96
jmp 0x48cae1
cmp al, 0x27
je 0x48cae8
inc ecx
mov al, byte [ecx + edx]
test al, al
jne 0x48cadc
cmp byte [ecx + edx], 0
je 0x48cb96
inc ecx
jmp 0x48cb96
movzx eax, byte [edx + 1]
xor esi, esi
inc esi
jmp 0x48cb06
inc esi
movzx eax, byte [esi + edx]
test byte [eax + 0x632098], 0x46
jne 0x48cb01
push esi
push edx
call fcn.00478352
pop ecx
pop ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x48c6d4
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 0x48cb90
movzx eax, bl
test byte [eax + 0x632098], 0x46
je 0x48cb47
inc esi
jmp 0x48cb5c
cmp ebx, 0x28
jne 0x48cb50
test esi, esi
jg 0x48cb67
cmp ebx, 0x3a
jne 0x48cb8c
cmp byte [edx + ecx + 1], bl
jne 0x48cb8c
inc ecx
inc ecx
movzx ebx, byte [ecx + edx]
test ebx, ebx
jne 0x48cb38
jmp 0x48cb8c
inc ecx
movzx ebx, byte [ecx + edx]
test ebx, ebx
je 0x48cb7e
test byte [ebx + 0x632098], 1
jne 0x48cb7e
cmp ebx, 0x29
jne 0x48cb67
cmp ebx, 0x29
jne 0x48cb86
inc ecx
jmp 0x48cb8c
mov dword [edi], 0x96
test esi, esi
jne 0x48cb96
mov dword [edi], 0x96
mov eax, ecx
pop edi
pop esi
pop ebx
pop ebp
ret