Function at 0x4ab8b0
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, dword [esp + 8]
mov ecx, dword [esi + 4]
mov al, byte [ecx]
cmp al, 0x2e
jne 0x4ab8f8
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x4ab8d8
push 6
push esi
call fcn.004af110
add esp, 8
mov dword [esi + 0x1c], eax
inc dword [esi + 4]
pop esi
ret
cmp dword [eax + 4], 3
jne 0x4ab8f3
push 0
push 0
push 0
push 6
push dword [esi + 0xc]
push eax
push esi
call fcn.004ad170
add esp, 0x1c
inc dword [esi + 4]
pop esi
ret
cmp al, 0x5c
je 0x4ab913
push str.Escaped_sequence:_expecting__
push esi
mov dword [esi + 8], 0x5aa
call fcn.004afe80
add esp, 8
pop esi
ret
lea edx, [ecx + 1]
push edi
mov dword [esi + 4], edx
movzx edi, byte [edx]
cmp edi, 0x70
jne 0x4ab949
lea eax, [edx + 1]
mov dword [esi + 4], eax
cmp byte [eax], 0x7b
jne 0x4ab959
inc eax
push esi
mov dword [esi + 4], eax
call fcn.004abcd0
mov eax, dword [esi + 4]
add esp, 4
cmp byte [eax], 0x7d
jne 0x4ab990
inc eax
pop edi
mov dword [esi + 4], eax
pop esi
ret
cmp edi, 0x50
jne 0x4ab9a8
lea eax, [edx + 1]
mov dword [esi + 4], eax
cmp byte [eax], 0x7b
je 0x4ab971
push 0x6812f8
push esi
mov dword [esi + 8], 0x5aa
call fcn.004afe80
add esp, 8
pop edi
pop esi
ret
inc eax
push esi
mov dword [esi + 4], eax
call fcn.004abcd0
mov eax, dword [esi + 0x1c]
add esp, 4
mov dword [eax + 0x1c], 1
mov eax, dword [esi + 4]
cmp byte [eax], 0x7d
je 0x4ab942
push str.Expecting_
push esi
mov dword [esi + 8], 0x5aa
call fcn.004afe80
add esp, 8
pop edi
pop esi
ret
cmp edi, 0x6e
je 0x4abb21
cmp edi, 0x72
je 0x4abb21
cmp edi, 0x74
je 0x4abb21
cmp edi, 0x5c
je 0x4abb21
cmp edi, 0x7c
je 0x4abb21
cmp edi, 0x2e
je 0x4abb21
cmp edi, 0x3f
je 0x4abb21
cmp edi, 0x2a
je 0x4abb21
cmp edi, 0x2b
je 0x4abb21
cmp edi, 0x28
je 0x4abb21
cmp edi, 0x29
je 0x4abb21
cmp edi, 0x7b
je 0x4abb21
cmp edi, 0x7d
je 0x4abb21
cmp edi, 0x2d
je 0x4abb21
cmp edi, 0x5b
je 0x4abb21
cmp edi, 0x5d
je 0x4abb21
cmp edi, 0x5e
je 0x4abb21
cmp edi, 0x73
je 0x4aba8b
cmp edi, 0x53
je 0x4aba8b
cmp edi, 0x69
je 0x4aba8b
cmp edi, 0x49
je 0x4aba8b
cmp edi, 0x63
je 0x4aba8b
cmp edi, 0x43
je 0x4aba8b
cmp edi, 0x64
je 0x4aba8b
cmp edi, 0x44
je 0x4aba8b
cmp edi, 0x77
je 0x4aba8b
cmp edi, 0x57
je 0x4aba8b
push str.Wrong_escape_sequence__misuse_of_character_
push esi
mov dword [esi + 8], 0x5aa
call fcn.004afe80
add esp, 8
pop edi
pop esi
ret
add edi, 0xffffffbd
mov ecx, 7
cmp edi, 0x34
ja case.0x4aba9f.69
movzx eax, byte [edi + 0x4abbe8]
jmp dword [eax*4 + 0x4abbbc]
mov ecx, 8
jmp case.0x4aba9f.69
mov ecx, 9
jmp case.0x4aba9f.69
mov ecx, 0xa
jmp case.0x4aba9f.69
mov ecx, 0xb
jmp case.0x4aba9f.69
mov ecx, 0xc
jmp case.0x4aba9f.69
mov ecx, 0xd
jmp case.0x4aba9f.69
mov ecx, 0xe
jmp case.0x4aba9f.69
mov ecx, 0xf
jmp case.0x4aba9f.69
mov ecx, 0x10
lea eax, [edx + 1]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x4abb00
push ecx
push esi
call fcn.004af110
add esp, 8
mov dword [esi + 0x1c], eax
pop edi
pop esi
ret
cmp dword [eax + 4], 3
jne 0x4abbb9
push 0
push 0
push 0
push ecx
push dword [esi + 0xc]
push eax
push esi
call fcn.004ad170
add esp, 0x1c
pop edi
pop esi
ret
mov ecx, dword [esi + 0x1c]
test ecx, ecx
jne 0x4abb7b
push 2
push esi
call fcn.004af110
add esp, 8
mov dword [esi + 0x1c], eax
test eax, eax
je 0x4abbb6
mov ecx, edi
sub ecx, 0x6e
je 0x4abb6e
sub ecx, 4
je 0x4abb61
sub ecx, 2
je 0x4abb54
mov dword [eax + 0x20], edi
inc dword [esi + 4]
pop edi
pop esi
ret
mov dword [eax + 0x20], 9
inc dword [esi + 4]
pop edi
pop esi
ret
mov dword [eax + 0x20], 0xd
inc dword [esi + 4]
pop edi
pop esi
ret
mov dword [eax + 0x20], 0xa
inc dword [esi + 4]
pop edi
pop esi
ret
cmp dword [ecx + 4], 3
jne 0x4abbb6
mov eax, edi
sub eax, 0x6e
je 0x4abb9e
sub eax, 4
je 0x4abb97
sub eax, 2
jne 0x4abba3
lea edi, [eax + 9]
jmp 0x4abba3
mov edi, 0xd
jmp 0x4abba3
mov edi, 0xa
push 0
push edi
push edi
push 2
push dword [esi + 0xc]
push ecx
push esi
call fcn.004ad170
add esp, 0x1c
inc dword [esi + 4]
pop edi
pop esi
ret