Function at 0x4ab542
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 0x4ab705
je 0x4ab6eb
cmp ecx, 0x26
jg 0x4ab657
je 0x4ab64c
cmp ecx, 0x22
jg 0x4ab5ec
je 0x4ab994
cmp ecx, 9
jl 0x4ab73c
cmp ecx, 0xa
jle 0x4ab5c5
cmp ecx, 0xb
jle 0x4ab73c
cmp ecx, 0xd
jle 0x4ab5c5
cmp ecx, 0x20
je 0x4ab5c5
cmp ecx, 0x21
jne 0x4ab73c
cmp byte [ebx + 1], 0x3d
mov eax, dword [ebp + 8]
push 2
je 0x4ab5ba
mov dword [eax], 0x90
jmp 0x4ab8d7
mov dword [eax], 0x43
jmp 0x4ab8d7
movzx eax, byte [ebx + 1]
xor esi, esi
inc esi
jmp 0x4ab5d3
inc esi
movzx eax, byte [esi + ebx]
push eax
call fcn.0058fbee
test eax, eax
pop ecx
jne 0x4ab5ce
mov eax, dword [ebp + 8]
mov dword [eax], 0x91
jmp 0x4abb1b
mov eax, ecx
sub eax, 0x23
je 0x4ab60f
dec eax
je 0x4aba94
dec eax
jne 0x4ab73c
mov eax, dword [ebp + 8]
mov dword [eax], 0x52
jmp 0x4ab6ac
movzx eax, byte [ebx + 1]
push eax
mov edi, esi
call fcn.0058faf7
test eax, eax
pop ecx
je 0x4aba94
inc edi
movzx eax, byte [edi + ebx]
push eax
call fcn.0058faf7
test eax, eax
pop ecx
jne 0x4ab624
cmp edi, esi
jle 0x4aba94
mov eax, dword [ebp + 8]
mov dword [eax], 0x7f
mov eax, edi
jmp 0x4abb1d
mov eax, dword [ebp + 8]
mov dword [eax], 0x4a
jmp 0x4ab6ac
mov eax, ecx
sub eax, 0x27
je 0x4ab994
dec eax
je 0x4ab6e0
dec eax
je 0x4ab6d5
dec eax
je 0x4ab6ca
dec eax
je 0x4ab6bf
dec eax
je 0x4ab6b4
dec eax
jne 0x4ab73c
cmp byte [ebx + 1], 0x2d
jne 0x4ab6a3
movzx ecx, byte [ebx + 2]
push 2
pop eax
jmp 0x4ab691
cmp ecx, 0xa
je 0x4ab695
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x4ab687
mov ecx, dword [ebp + 8]
mov dword [ecx], 0x93
jmp 0x4abb1d
mov eax, dword [ebp + 8]
mov dword [eax], 0x4f
xor eax, eax
inc eax
jmp 0x4abb1d
mov eax, dword [ebp + 8]
mov dword [eax], 0x16
jmp 0x4ab6ac
mov eax, dword [ebp + 8]
mov dword [eax], 0x4e
jmp 0x4ab6ac
mov eax, dword [ebp + 8]
mov dword [eax], 0x50
jmp 0x4ab6ac
mov eax, dword [ebp + 8]
mov dword [eax], 0x14
jmp 0x4ab6ac
mov eax, dword [ebp + 8]
mov dword [eax], 0x13
jmp 0x4ab6ac
movzx eax, byte [ebx + 1]
push eax
call fcn.0058faf7
test eax, eax
pop ecx
jne 0x4ab764
mov eax, dword [ebp + 8]
mov dword [eax], 0x70
jmp 0x4ab6ac
cmp ecx, 0x3f
jg 0x4ab92f
je 0x4ab908
cmp ecx, 0x3b
jg 0x4ab86b
je 0x4ab85e
cmp ecx, 0x2f
je 0x4ab81d
jle 0x4ab73c
cmp ecx, 0x39
jle 0x4ab764
cmp ecx, 0x3a
je 0x4aba94
test cl, cl
js 0x4aba69
cmp ecx, 0x1f
jle 0x4ab756
cmp byte [ecx + 0x6399f8], 0
jne 0x4aba69
mov eax, dword [ebp + 8]
mov dword [eax], 0x90
jmp 0x4ab6ac
mov esi, dword [ebp + 8]
movzx eax, byte [ebx]
mov dword [esi], 0x7c
xor edi, edi
jmp 0x4ab779
inc edi
movzx eax, byte [edi + ebx]
push eax
call fcn.0058faf7
test eax, eax
pop ecx
jne 0x4ab774
cmp byte [edi + ebx], 0x2e
jne 0x4ab7a0
inc edi
movzx eax, byte [edi + ebx]
push eax
call fcn.0058faf7
test eax, eax
pop ecx
jne 0x4ab78a
mov dword [esi], 0x7d
lea esi, [edi + ebx]
mov al, byte [esi]
cmp al, 0x65
je 0x4ab7ad
cmp al, 0x45
jne 0x4ab7f3
movzx eax, byte [esi + 1]
push eax
call fcn.0058faf7
test eax, eax
pop ecx
jne 0x4ab7d6
mov al, byte [esi + 1]
cmp al, 0x2b
je 0x4ab7c7
cmp al, 0x2d
jne 0x4ab7f3
movzx eax, byte [esi + 2]
push eax
call fcn.0058faf7
test eax, eax
pop ecx
je 0x4ab7f3
inc edi
inc edi
jmp 0x4ab7db
inc edi
movzx eax, byte [edi + ebx]
push eax
call fcn.0058faf7
test eax, eax
pop ecx
jne 0x4ab7da
mov eax, dword [ebp + 8]
mov dword [eax], 0x7d
movzx eax, byte [edi + ebx]
test al, al
js 0x4ab811
cmp eax, 0x1f
jle 0x4ab645
cmp byte [eax + 0x6399f8], 0
je 0x4ab645
mov eax, dword [ebp + 8]
mov dword [eax], 0x90
inc edi
jmp 0x4ab7f3
cmp byte [ebx + 1], 0x2a
jne 0x4ab850
mov cl, byte [ebx + 2]
test cl, cl
je 0x4ab850
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x4ab83b
cmp byte [eax + ebx], 0x2f
je 0x4ab84a
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x4ab695
inc eax
jmp 0x4ab830
inc eax
jmp 0x4ab695
mov eax, dword [ebp + 8]
mov dword [eax], 0x51
jmp 0x4ab6ac
mov eax, dword [ebp + 8]
xor esi, esi
inc esi
mov dword [eax], esi
jmp 0x4abb1b
mov eax, ecx
sub eax, 0x3c
je 0x4ab8c3
dec eax
je 0x4ab8ab
dec eax
jne 0x4ab73c
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x4ab890
mov eax, dword [ebp + 8]
mov dword [eax], 0x48
jmp 0x4ab8d5
cmp eax, 0x3e
mov eax, dword [ebp + 8]
jne 0x4ab8a0
mov dword [eax], 0x4d
jmp 0x4ab8d5
mov dword [eax], 0x45
jmp 0x4ab6ac
mov eax, dword [ebp + 8]
mov dword [eax], 0x44
xor eax, eax
cmp byte [ebx + 1], 0x3d
sete al
inc eax
jmp 0x4abb1d
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x4ab8dd
mov eax, dword [ebp + 8]
mov dword [eax], 0x46
push 2
pop eax
jmp 0x4abb1d
cmp eax, 0x3e
jne 0x4ab8ed
mov eax, dword [ebp + 8]
mov dword [eax], 0x43
jmp 0x4ab8d5
cmp eax, 0x3c
mov eax, dword [ebp + 8]
jne 0x4ab8fd
mov dword [eax], 0x4c
jmp 0x4ab8d5
mov dword [eax], 0x47
jmp 0x4ab6ac
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [eax], 0x80
movzx eax, byte [ebx + 1]
inc esi
jmp 0x4ab91f
inc esi
movzx eax, byte [esi + ebx]
push eax
call fcn.0058faf7
test eax, eax
pop ecx
jne 0x4ab91a
jmp 0x4abb1b
mov eax, ecx
sub eax, 0x40
je 0x4aba94
sub eax, 0x18
je 0x4aba05
sub eax, 3
je 0x4ab9d6
sub eax, 5
je 0x4ab994
sub eax, 0x18
je 0x4aba05
sub eax, 4
je 0x4ab975
dec eax
dec eax
jne 0x4ab73c
mov eax, dword [ebp + 8]
mov dword [eax], 0x57
jmp 0x4ab6ac
cmp byte [ebx + 1], 0x7c
mov eax, dword [ebp + 8]
je 0x4ab989
mov dword [eax], 0x4b
jmp 0x4ab6ac
mov dword [eax], 0x53
jmp 0x4ab8d5
movzx edx, byte [ebx + 1]
xor eax, eax
inc eax
test edx, edx
je 0x4ab9c8
cmp edx, ecx
jne 0x4ab9ad
movzx esi, byte [ebx + eax + 1]
cmp esi, ecx
jne 0x4ab9b6
inc eax
inc eax
movzx edx, byte [eax + ebx]
test edx, edx
jne 0x4ab99f
test edx, edx
je 0x4ab9c8
mov ecx, dword [ebp + 8]
mov dword [ecx], 0x58
jmp 0x4ab8bd
mov ecx, dword [ebp + 8]
mov dword [ecx], 0x90
jmp 0x4abb1d
xor eax, eax
inc eax
jmp 0x4ab9e4
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x4ab9e9
inc eax
cmp ecx, 0x5d
jne 0x4ab9db
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 0x4abb1d
cmp byte [ebx + 1], 0x27
jne 0x4ab73c
mov esi, dword [ebp + 8]
movzx eax, byte [ebx + 2]
push 2
mov dword [esi], 0x7e
pop edi
jmp 0x4aba3c
cmp eax, 0x27
je 0x4aba40
push eax
call fcn.0058fb74
test eax, eax
pop ecx
jne 0x4aba37
mov dword [esi], 0x90
inc edi
movzx eax, byte [edi + ebx]
test eax, eax
jne 0x4aba21
mov ecx, edi
and ecx, 0x80000001
jns 0x4aba4f
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x4aba55
test eax, eax
jne 0x4aba63
test eax, eax
mov dword [esi], 0x90
je 0x4ab645
inc edi
jmp 0x4ab645
xor edi, edi
inc edi
movzx eax, byte [edi + ebx]
test al, al
js 0x4aba82
cmp eax, 0x1f
jle 0x4aba85
cmp byte [eax + 0x6399f8], 0
je 0x4aba85
inc edi
jmp 0x4aba6c
call fcn.004ab4cc
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
jmp 0x4ab645
mov eax, dword [ebp + 8]
and dword [ebp - 4], 0
mov dword [eax], 0x80
movzx eax, byte [ebx + 1]
test eax, eax
je 0x4abb12
test al, al
js 0x4abad4
cmp eax, 0x1f
jle 0x4ababb
cmp byte [eax + 0x6399f8], 0
jne 0x4abad4
cmp eax, 0x28
jne 0x4abac6
cmp dword [ebp - 4], 0
jg 0x4abae2
cmp eax, 0x3a
jne 0x4abb0c
cmp byte [ebx + esi + 1], al
jne 0x4abb0c
inc esi
jmp 0x4abad7
inc dword [ebp - 4]
inc esi
movzx eax, byte [esi + ebx]
test eax, eax
jne 0x4abaa9
jmp 0x4abb0c
inc esi
movzx edi, byte [esi + ebx]
test edi, edi
je 0x4abafb
push edi
call fcn.0058fbee
test eax, eax
pop ecx
jne 0x4abafb
cmp edi, 0x29
jne 0x4abae2
cmp edi, 0x29
jne 0x4abb03
inc esi
jmp 0x4abb0c
mov eax, dword [ebp + 8]
mov dword [eax], 0x90
cmp dword [ebp - 4], 0
jne 0x4abb1b
mov eax, dword [ebp + 8]
mov dword [eax], 0x90
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret