Function at 0x20a960
Capabilities:
Parse credit card information

Disassembly:
push ebx
push edi
push esi
mov esi, dword [ecx]
movzx edi, byte [esi]
mov eax, 0xffffffff
add edi, 0xffffffde
cmp edi, 0x58
ja case.0x20a975.35
jmp dword [edi*4 + 0x769c54]
mov eax, dword [ecx + 4]
lea edi, [esi + 1]
mov dword [ecx], edi
cmp edi, eax
je case.0x20a99b.34
nop dword [eax + eax]
movzx ebx, byte [edi]
add ebx, 0xffffffdf
cmp ebx, 0x5d
ja case.0x20a99b.34
jmp dword [ebx*4 + 0x769db8]
inc edi
mov dword [ecx], edi
cmp edi, eax
jne 0x20a990
xor eax, eax
test edx, edx
je case.0x20a975.35
mov dword [edx], 4
mov dword [edx + 4], 0
mov dword [edx + 8], esi
mov ecx, dword [ecx]
sub ecx, esi
mov dword [edx + 0xc], ecx
pop esi
pop edi
pop ebx
ret
pop esi
pop edi
pop ebx
jmp fcn.0020b2d0
pop esi
pop edi
pop ebx
jmp 0x20b1f0
pop esi
pop edi
pop ebx
jmp 0x20b9d0
pop esi
pop edi
pop ebx
jmp fcn.0020b960
pop esi
pop edi
pop ebx
jmp 0x20bb30
push ebp
push ebx
push edi
push esi
sub esp, 8
mov edi, dword [ecx]
cmp byte [edi], 0x22
jne 0x20b2ac
lea esi, [edi + 1]
mov ebp, dword [ecx + 4]
mov dword [ecx], esi
mov eax, 0xffffffff
cmp esi, ebp
je 0x20b274
mov dword [esp + 4], edx
mov ebx, 1
mov dword [esp], 0
mov eax, esi
nop word cs:[eax + eax]
movzx edx, byte [edi + ebx]
add edx, 0xffffffe0
cmp edx, 0x5e
ja case.default.0x20b23c
jmp dword [edx*4 + 0x76a03c]
lea esi, [edi + ebx]
inc esi
inc ebx
mov dword [ecx], esi
cmp esi, ebp
jne 0x20b230
jmp case.default.0x20b23c
lea esi, [edi + ebx]
inc esi
mov dword [ecx], esi
cmp esi, ebp
je case.default.0x20b23c
inc ebx
movzx edx, byte [esi]
mov dword [esp], 1
cmp edx, 0x22
je case.0x20b23c.32
cmp edx, 0x5c
je case.0x20b23c.32
mov eax, 0xffffffff
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 4]
test edx, edx
je 0x20b2a5
mov dword [edx], 3
mov esi, dword [esp]
mov dword [edx + 4], esi
mov esi, edx
lea edx, [ebx - 1]
mov dword [esi + 0xc], edx
xor edx, edx
cmp ebx, 1
cmove eax, edx
mov dword [esi + 8], eax
mov esi, dword [ecx]
inc esi
mov dword [ecx], esi
xor eax, eax
jmp 0x20b274
push 0x17c
push 0x76a41a
push 0x76a887
nop
call reloc.ucrtbase.dll__assert
nop word cs:[eax + eax]
push ebp
push ebx
push edi
push esi
sub esp, 8
mov esi, dword [ecx]
cmp byte [esi], 0x3a
jne 0x20bb17
lea edi, [esi + 1]
mov ebx, dword [ecx + 4]
mov dword [ecx], edi
mov eax, 0xffffffff
cmp edi, ebx
je 0x20ba39
mov dword [esp], edi
mov dword [esp + 4], edx
mov edi, 1
mov edx, 0xfffffffc
mov ebp, 2
nop dword [eax]
movzx eax, byte [esi + ebp - 1]
add eax, 0xffffffd5
cmp eax, 0x4f
ja case.0x20ba1d.44
jmp dword [eax*4 + 0x76a1b8]
lea eax, [esi + ebp]
mov dword [ecx], eax
lea eax, [esi + edi]
inc eax
inc edi
dec edx
inc ebp
cmp eax, ebx
jne 0x20ba10
mov eax, 0xffffffff
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
neg edx
and edx, 3
cmp edx, 2
jb case.0x20ba1d.44
cmp edx, 3
jne 0x20baa3
movzx edx, byte [esi + ebp - 2]
add edx, 0xffffffd0
cmp edx, 0x47
ja case.0x20ba1d.44
mov ebp, edi
jmp dword [edx*4 + 0x76a2f8]
neg edx
test dl, 3
mov eax, 0xffffffff
jne 0x20ba39
mov edx, dword [esp + 4]
test edx, edx
je 0x20bb0b
mov dword [edx], 5
mov dword [edx + 4], 0
lea eax, [edi - 1]
mov dword [edx + 0xc], eax
xor eax, eax
cmp edi, 1
mov esi, dword [esp]
cmove esi, eax
mov dword [edx + 8], esi
mov esi, dword [ecx]
jmp 0x20bb0d
movzx edx, byte [esi + ebp - 2]
cmp edx, 0x66
jg 0x20babc
cmp edx, 0x41
je 0x20baca
cmp edx, 0x51
je 0x20baca
jmp case.0x20ba1d.44
cmp edx, 0x77
je 0x20baca
cmp edx, 0x67
jne case.0x20ba1d.44
lea eax, [esi + ebp]
mov dword [ecx], eax
cmp eax, ebx
je case.0x20ba1d.44
cmp byte [eax], 0x3d
jne case.0x20ba1d.44
lea eax, [esi + ebp]
inc eax
mov dword [ecx], eax
cmp eax, ebx
je case.0x20ba1d.44
cmp byte [eax], 0x3a
mov eax, 0xffffffff
jne 0x20ba39
inc ebp
mov edi, ebp
mov edx, dword [esp + 4]
test edx, edx
jne 0x20ba7e
add esi, edi
inc esi
mov dword [ecx], esi
xor eax, eax
jmp 0x20ba39
push 0x1d9
push 0x76a41a
push 0x76a8ba
nop
call reloc.ucrtbase.dll__assert
nop dword [eax]
push ebx
push edi
push esi
mov esi, dword [ecx]
cmp byte [esi], 0x3f
jne 0x20bb7f
lea edi, [esi + 1]
mov dword [ecx], edi
mov eax, 0xffffffff
cmp edi, dword [ecx + 4]
je 0x20bb7b
movzx ebx, byte [edi]
mov edi, 0
cmp ebx, 0x30
je 0x20bb60
cmp ebx, 0x31
jne 0x20bb7b
mov edi, 1
add esi, 2
mov dword [ecx], esi
test edx, edx
je 0x20bb79
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], edi
xor eax, eax
pop esi
pop edi
pop ebx
ret
push 0x23a
push 0x76a41a
push 0x76a8cb
nop
call reloc.ucrtbase.dll__assert
nop
nop
nop
nop
nop
nop