Function at 0x4b8a54
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 0x4b8c17
je 0x4b8bfd
cmp ecx, 0x26
jg 0x4b8b69
je 0x4b8b5e
cmp ecx, 0x22
jg 0x4b8afe
je 0x4b8ea6
cmp ecx, 9
jl 0x4b8c4e
cmp ecx, 0xa
jle 0x4b8ad7
cmp ecx, 0xb
jle 0x4b8c4e
cmp ecx, 0xd
jle 0x4b8ad7
cmp ecx, 0x20
je 0x4b8ad7
cmp ecx, 0x21
jne 0x4b8c4e
cmp byte [ebx + 1], 0x3d
mov eax, dword [ebp + 8]
push 2
je 0x4b8acc
mov dword [eax], 0x90
jmp 0x4b8de9
mov dword [eax], 0x43
jmp 0x4b8de9
movzx eax, byte [ebx + 1]
xor esi, esi
inc esi
jmp 0x4b8ae5
inc esi
movzx eax, byte [esi + ebx]
push eax
call fcn.004de919
pop ecx
test eax, eax
jne 0x4b8ae0
mov eax, dword [ebp + 8]
mov dword [eax], 0x91
jmp 0x4b902d
mov eax, ecx
sub eax, 0x23
je 0x4b8b21
dec eax
je 0x4b8fa6
dec eax
jne 0x4b8c4e
mov eax, dword [ebp + 8]
mov dword [eax], 0x52
jmp 0x4b8bbe
movzx eax, byte [ebx + 1]
push eax
mov edi, esi
call fcn.004de814
pop ecx
test eax, eax
je 0x4b8fa6
inc edi
movzx eax, byte [edi + ebx]
push eax
call fcn.004de814
pop ecx
test eax, eax
jne 0x4b8b36
cmp edi, esi
jle 0x4b8fa6
mov eax, dword [ebp + 8]
mov dword [eax], 0x7f
mov eax, edi
jmp 0x4b902f
mov eax, dword [ebp + 8]
mov dword [eax], 0x4a
jmp 0x4b8bbe
mov eax, ecx
sub eax, 0x27
je 0x4b8ea6
dec eax
je 0x4b8bf2
dec eax
je 0x4b8be7
dec eax
je 0x4b8bdc
dec eax
je 0x4b8bd1
dec eax
je 0x4b8bc6
dec eax
jne 0x4b8c4e
cmp byte [ebx + 1], 0x2d
jne 0x4b8bb5
movzx ecx, byte [ebx + 2]
push 2
pop eax
jmp 0x4b8ba3
cmp ecx, 0xa
je 0x4b8ba7
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x4b8b99
mov ecx, dword [ebp + 8]
mov dword [ecx], 0x93
jmp 0x4b902f
mov eax, dword [ebp + 8]
mov dword [eax], 0x4f
xor eax, eax
inc eax
jmp 0x4b902f
mov eax, dword [ebp + 8]
mov dword [eax], 0x16
jmp 0x4b8bbe
mov eax, dword [ebp + 8]
mov dword [eax], 0x4e
jmp 0x4b8bbe
mov eax, dword [ebp + 8]
mov dword [eax], 0x50
jmp 0x4b8bbe
mov eax, dword [ebp + 8]
mov dword [eax], 0x14
jmp 0x4b8bbe
mov eax, dword [ebp + 8]
mov dword [eax], 0x13
jmp 0x4b8bbe
movzx eax, byte [ebx + 1]
push eax
call fcn.004de814
pop ecx
test eax, eax
jne 0x4b8c76
mov eax, dword [ebp + 8]
mov dword [eax], 0x70
jmp 0x4b8bbe
cmp ecx, 0x3f
jg 0x4b8e41
je 0x4b8e1a
cmp ecx, 0x3b
jg 0x4b8d7d
je 0x4b8d70
cmp ecx, 0x2f
je 0x4b8d2f
jle 0x4b8c4e
cmp ecx, 0x39
jle 0x4b8c76
cmp ecx, 0x3a
je 0x4b8fa6
test cl, cl
js 0x4b8f7b
cmp ecx, 0x1f
jle 0x4b8c68
cmp byte [ecx + 0x52d2e0], 0
jne 0x4b8f7b
mov eax, dword [ebp + 8]
mov dword [eax], 0x90
jmp 0x4b8bbe
mov esi, dword [ebp + 8]
movzx eax, byte [ebx]
mov dword [esi], 0x7c
xor edi, edi
jmp 0x4b8c8b
inc edi
movzx eax, byte [edi + ebx]
push eax
call fcn.004de814
pop ecx
test eax, eax
jne 0x4b8c86
cmp byte [edi + ebx], 0x2e
jne 0x4b8cb2
inc edi
movzx eax, byte [edi + ebx]
push eax
call fcn.004de814
pop ecx
test eax, eax
jne 0x4b8c9c
mov dword [esi], 0x7d
lea esi, [edi + ebx]
mov al, byte [esi]
cmp al, 0x65
je 0x4b8cbf
cmp al, 0x45
jne 0x4b8d05
movzx eax, byte [esi + 1]
push eax
call fcn.004de814
pop ecx
test eax, eax
jne 0x4b8ce8
mov al, byte [esi + 1]
cmp al, 0x2b
je 0x4b8cd9
cmp al, 0x2d
jne 0x4b8d05
movzx eax, byte [esi + 2]
push eax
call fcn.004de814
pop ecx
test eax, eax
je 0x4b8d05
inc edi
inc edi
jmp 0x4b8ced
inc edi
movzx eax, byte [edi + ebx]
push eax
call fcn.004de814
pop ecx
test eax, eax
jne 0x4b8cec
mov eax, dword [ebp + 8]
mov dword [eax], 0x7d
movzx eax, byte [edi + ebx]
test al, al
js 0x4b8d23
cmp eax, 0x1f
jle 0x4b8b57
cmp byte [eax + 0x52d2e0], 0
je 0x4b8b57
mov eax, dword [ebp + 8]
mov dword [eax], 0x90
inc edi
jmp 0x4b8d05
cmp byte [ebx + 1], 0x2a
jne 0x4b8d62
mov cl, byte [ebx + 2]
test cl, cl
je 0x4b8d62
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x4b8d4d
cmp byte [eax + ebx], 0x2f
je 0x4b8d5c
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x4b8ba7
inc eax
jmp 0x4b8d42
inc eax
jmp 0x4b8ba7
mov eax, dword [ebp + 8]
mov dword [eax], 0x51
jmp 0x4b8bbe
mov eax, dword [ebp + 8]
xor esi, esi
inc esi
mov dword [eax], esi
jmp 0x4b902d
mov eax, ecx
sub eax, 0x3c
je 0x4b8dd5
dec eax
je 0x4b8dbd
dec eax
jne 0x4b8c4e
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x4b8da2
mov eax, dword [ebp + 8]
mov dword [eax], 0x48
jmp 0x4b8de7
cmp eax, 0x3e
mov eax, dword [ebp + 8]
jne 0x4b8db2
mov dword [eax], 0x4d
jmp 0x4b8de7
mov dword [eax], 0x45
jmp 0x4b8bbe
mov eax, dword [ebp + 8]
mov dword [eax], 0x44
xor eax, eax
cmp byte [ebx + 1], 0x3d
sete al
inc eax
jmp 0x4b902f
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x4b8def
mov eax, dword [ebp + 8]
mov dword [eax], 0x46
push 2
pop eax
jmp 0x4b902f
cmp eax, 0x3e
jne 0x4b8dff
mov eax, dword [ebp + 8]
mov dword [eax], 0x43
jmp 0x4b8de7
cmp eax, 0x3c
mov eax, dword [ebp + 8]
jne 0x4b8e0f
mov dword [eax], 0x4c
jmp 0x4b8de7
mov dword [eax], 0x47
jmp 0x4b8bbe
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [eax], 0x80
movzx eax, byte [ebx + 1]
inc esi
jmp 0x4b8e31
inc esi
movzx eax, byte [esi + ebx]
push eax
call fcn.004de814
pop ecx
test eax, eax
jne 0x4b8e2c
jmp 0x4b902d
mov eax, ecx
sub eax, 0x40
je 0x4b8fa6
sub eax, 0x18
je 0x4b8f17
sub eax, 3
je 0x4b8ee8
sub eax, 5
je 0x4b8ea6
sub eax, 0x18
je 0x4b8f17
sub eax, 4
je 0x4b8e87
dec eax
dec eax
jne 0x4b8c4e
mov eax, dword [ebp + 8]
mov dword [eax], 0x57
jmp 0x4b8bbe
cmp byte [ebx + 1], 0x7c
mov eax, dword [ebp + 8]
je 0x4b8e9b
mov dword [eax], 0x4b
jmp 0x4b8bbe
mov dword [eax], 0x53
jmp 0x4b8de7
movzx edx, byte [ebx + 1]
xor eax, eax
inc eax
test edx, edx
je 0x4b8eda
cmp edx, ecx
jne 0x4b8ebf
movzx esi, byte [ebx + eax + 1]
cmp esi, ecx
jne 0x4b8ec8
inc eax
inc eax
movzx edx, byte [eax + ebx]
test edx, edx
jne 0x4b8eb1
test edx, edx
je 0x4b8eda
mov ecx, dword [ebp + 8]
mov dword [ecx], 0x58
jmp 0x4b8dcf
mov ecx, dword [ebp + 8]
mov dword [ecx], 0x90
jmp 0x4b902f
xor eax, eax
inc eax
jmp 0x4b8ef6
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x4b8efb
inc eax
cmp ecx, 0x5d
jne 0x4b8eed
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 0x4b902f
cmp byte [ebx + 1], 0x27
jne 0x4b8c4e
mov esi, dword [ebp + 8]
movzx eax, byte [ebx + 2]
push 2
mov dword [esi], 0x7e
pop edi
jmp 0x4b8f4e
cmp eax, 0x27
je 0x4b8f52
push eax
call fcn.004de898
pop ecx
test eax, eax
jne 0x4b8f49
mov dword [esi], 0x90
inc edi
movzx eax, byte [edi + ebx]
test eax, eax
jne 0x4b8f33
mov ecx, edi
and ecx, 0x80000001
jns 0x4b8f61
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x4b8f67
test eax, eax
jne 0x4b8f75
mov dword [esi], 0x90
test eax, eax
je 0x4b8b57
inc edi
jmp 0x4b8b57
xor edi, edi
inc edi
movzx eax, byte [edi + ebx]
test al, al
js 0x4b8f94
cmp eax, 0x1f
jle 0x4b8f97
cmp byte [eax + 0x52d2e0], 0
je 0x4b8f97
inc edi
jmp 0x4b8f7e
call fcn.004b89de
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
jmp 0x4b8b57
mov eax, dword [ebp + 8]
and dword [ebp - 4], 0
mov dword [eax], 0x80
movzx eax, byte [ebx + 1]
test eax, eax
je 0x4b9024
test al, al
js 0x4b8fe6
cmp eax, 0x1f
jle 0x4b8fcd
cmp byte [eax + 0x52d2e0], 0
jne 0x4b8fe6
cmp eax, 0x28
jne 0x4b8fd8
cmp dword [ebp - 4], 0
jg 0x4b8ff4
cmp eax, 0x3a
jne 0x4b901e
cmp byte [ebx + esi + 1], al
jne 0x4b901e
inc esi
jmp 0x4b8fe9
inc dword [ebp - 4]
inc esi
movzx eax, byte [esi + ebx]
test eax, eax
jne 0x4b8fbb
jmp 0x4b901e
inc esi
movzx edi, byte [esi + ebx]
test edi, edi
je 0x4b900d
push edi
call fcn.004de919
pop ecx
test eax, eax
jne 0x4b900d
cmp edi, 0x29
jne 0x4b8ff4
cmp edi, 0x29
jne 0x4b9015
inc esi
jmp 0x4b901e
mov eax, dword [ebp + 8]
mov dword [eax], 0x90
cmp dword [ebp - 4], 0
jne 0x4b902d
mov eax, dword [ebp + 8]
mov dword [eax], 0x90
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret