Function at 0x4c8030
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x7d8
push ebp
push esi
push edi
mov edi, ecx
mov esi, edx
push 0x21
push edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edi
call fcn.00563730
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x4c8062
mov byte [ebp], 0
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x4c8070
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x7d8
ret 4
push ebx
push 0x40
push ebp
call fcn.00563730
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4c8091
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x7d8
ret 4
mov byte [ebx], 0
mov al, byte [ebx + 1]
inc ebx
test al, al
je 0x4c8082
push 0x20
push edi
call fcn.00563730
add esp, 8
test eax, eax
je 0x4c80ae
mov byte [eax], 0
push 0x20
push ebp
call fcn.00563730
add esp, 8
test eax, eax
je 0x4c80c0
mov byte [eax], 0
push 0x20
push ebx
call fcn.00563730
add esp, 8
test eax, eax
je 0x4c80d2
mov byte [eax], 0
xor edi, edi
cmp esi, 0xa
jl 0x4c80e5
sub esi, 0xa
mov dword [esp + 0x14], esi
mov edi, 1
cmp esi, 1
je 0x4c80f9
cmp esi, 3
je 0x4c80f9
cmp esi, 6
je 0x4c80f9
cmp esi, 8
jne 0x4c812f
mov al, byte [ebp]
cmp al, 0x2b
je 0x4c8114
cmp al, 0x2d
je 0x4c8114
cmp al, 0x2a
je 0x4c8114
cmp al, 0x7e
je 0x4c8114
cmp al, 0x5e
je 0x4c8114
cmp al, 0x3d
jne 0x4c812f
mov eax, ebp
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4c8120
sub eax, edx
cmp eax, 1
jbe 0x4c812f
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4c8134
sub eax, edx
cmp eax, 0xa
jbe 0x4c8156
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4c8148
sub eax, edx
cmp eax, 0xa
ja 0x4c8142
cmp esi, 3
je 0x4c816e
cmp esi, 4
je 0x4c816e
cmp esi, 8
je 0x4c816e
cmp esi, 9
jne 0x4c823e
push 0x3d
push ebx
call fcn.00563730
add esp, 8
test eax, eax
je 0x4c81cd
cmp eax, ebx
jbe 0x4c8191
mov cl, byte [eax - 1]
dec eax
cmp cl, 0x2e
je 0x4c8190
cmp eax, ebx
ja 0x4c8181
jmp 0x4c8191
inc eax
mov byte [eax], 0x2a
mov dl, byte [eax + 1]
inc eax
test dl, dl
mov ecx, eax
je 0x4c81ad
mov edi, edi
mov dl, byte [ecx + 1]
inc ecx
cmp dl, 0x2e
je 0x4c81b6
test dl, dl
jne 0x4c81a0
cmp byte [ecx], 0x2e
jne 0x4c823b
mov dl, byte [ecx]
test dl, dl
je 0x4c823b
lea esp, [esp]
mov byte [eax], dl
mov dl, byte [ecx + 1]
inc eax
inc ecx
test dl, dl
jne 0x4c81c0
jmp 0x4c823b
mov eax, dword [esp + 0x7ec]
test eax, eax
je 0x4c823e
test byte [eax + 0x1da8], 0x20
je 0x4c823e
push 0x579efc
push ebx
call fcn.00563db0
add esp, 8
test eax, eax
je 0x4c823e
cmp eax, ebx
jbe 0x4c8207
mov cl, byte [eax - 1]
dec eax
cmp cl, 0x2e
je 0x4c8206
cmp eax, ebx
ja 0x4c81f7
jmp 0x4c8207
inc eax
mov byte [eax], 0x2a
mov dl, byte [eax + 1]
inc eax
test dl, dl
mov ecx, eax
je 0x4c8221
mov dl, byte [ecx + 1]
inc ecx
cmp dl, 0x2e
je 0x4c8226
test dl, dl
jne 0x4c8214
cmp byte [ecx], 0x2e
jne 0x4c823b
mov dl, byte [ecx]
test dl, dl
je 0x4c823b
lea esp, [esp]
mov byte [eax], dl
mov dl, byte [ecx + 1]
inc eax
inc ecx
test dl, dl
jne 0x4c8230
mov byte [eax], 0
cmp byte [ebx], 0
mov esi, ebx
je 0x4c826b
mov al, byte [esi]
cmp al, 0x2e
je 0x4c8263
cmp al, 0x2a
je 0x4c8263
cmp al, 0x3f
je 0x4c8263
movzx eax, al
push eax
call fcn.00564077
add esp, 4
test eax, eax
je 0x4c82c3
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4c8245
push 0x2e
push ebx
call fcn.00563c90
add esp, 8
test eax, eax
je 0x4c83ec
lea esi, [esp + 0x18]
mov byte [eax], 0
mov ecx, ebx
sub esi, ebx
lea esp, [esp]
mov dl, byte [ecx]
mov byte [esi + ecx], dl
inc ecx
test dl, dl
jne 0x4c8290
lea edi, [esp + 0x18]
dec edi
nop
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4c82a0
mov cx, word [0x579ef8]
mov dl, byte [0x579efa]
mov word [edi], cx
mov byte [edi + 2], dl
mov byte [eax], 0x2e
jmp 0x4c83fe
test edi, edi
push 0x2e
push ebx
je 0x4c8341
xor edi, edi
call fcn.00563730
add esp, 8
test eax, eax
je 0x4c82f0
mov cl, byte [eax + 1]
inc edi
inc eax
test cl, cl
je 0x4c82f0
push 0x2e
push eax
call fcn.00563730
add esp, 8
test eax, eax
jne 0x4c82d8
lea edx, [esp + 0x18]
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4c82f8
mov al, byte [esp + 0x18]
test al, al
lea esi, [esp + 0x18]
je 0x4c8338
mov edi, edi
movzx ecx, byte [esi]
push ecx
call fcn.00564077
add esp, 4
test eax, eax
je 0x4c8325
mov byte [esi], 0x3f
jmp 0x4c8330
cmp byte [esi], 0x2e
jne 0x4c8330
dec edi
cmp edi, 1
je 0x4c8338
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4c8310
lea ebx, [esp + 0x18]
jmp 0x4c83fe
call fcn.00563730
mov esi, eax
add esp, 8
test esi, esi
je 0x4c83d3
mov al, byte [esi + 1]
inc esi
test al, al
je 0x4c83bf
push 0x2e
push esi
call fcn.00563730
add esp, 8
test eax, eax
je 0x4c83ab
mov al, byte [0x574c96]
mov dx, word [0x574c94]
mov byte [esp + 0x1a], al
mov eax, esi
mov word [esp + 0x18], dx
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4c8383
lea edi, [esp + 0x18]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4c8391
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4c83fe
lea edx, [esp + 0x18]
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4c83b3
jmp 0x4c83fe
lea edx, [esp + 0x18]
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4c83c7
jmp 0x4c83fe
lea edx, [esp + 0x18]
mov eax, ebx
sub edx, ebx
jmp 0x4c83e0
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4c83e0
jmp 0x4c83fe
lea edx, [esp + 0x18]
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4c83f4
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4c8423
push ebx
push ebp
lea eax, [esp + 0x408]
push 0x579eec
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4c863f
cmp eax, 1
jne 0x4c8486
mov eax, ebp
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4c8430
sub eax, edx
cmp eax, 0xa
jb 0x4c8454
mov edi, edi
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4c8446
sub eax, edx
cmp eax, 0xa
jae 0x4c8440
push 0x57561c
push ebp
call fcn.00572b46
add esp, 8
test eax, eax
jne 0x4c8469
mov byte [ebp], al
push ebx
push ebp
lea ecx, [esp + 0x408]
push 0x579ee0
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4c863f
cmp eax, 2
jne 0x4c84a7
push ebx
lea edx, [esp + 0x404]
push 0x575608
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x4c863f
cmp eax, 3
jne 0x4c850a
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4c84b1
sub eax, edx
cmp eax, 0xa
jb 0x4c84d4
nop
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4c84c6
sub eax, edx
cmp eax, 0xa
jae 0x4c84c0
push 0x57561c
push ebp
call fcn.00572b46
add esp, 8
test eax, eax
jne 0x4c84e9
mov byte [ebp], al
lea eax, [esp + 0x18]
push eax
push ebp
lea ecx, [esp + 0x408]
push 0x579ee0
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4c863f
cmp eax, 4
jne 0x4c852f
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x404]
push 0x575608
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x4c863f
cmp eax, 5
je 0x4c8622
cmp eax, 6
jne 0x4c8592
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4c8542
sub eax, edx
cmp eax, 0xa
jb 0x4c8564
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4c8556
sub eax, edx
cmp eax, 0xa
jae 0x4c8550
push 0x57561c
push ebp
call fcn.00572b46
add esp, 8
test eax, eax
jne 0x4c8579
mov byte [ebp], al
mov eax, dword [esp + 0x10]
push ebx
push ebp
push eax
push str._s__s__s
lea ecx, [esp + 0x410]
push ecx
jmp 0x4c8636
cmp eax, 7
jne 0x4c85b8
push ebx
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x408]
push 0x579ec8
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4c863f
cmp eax, 8
jne 0x4c8613
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4c85c2
sub eax, edx
cmp eax, 0xa
jb 0x4c85e4
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4c85d6
sub eax, edx
cmp eax, 0xa
jae 0x4c85d0
push 0x57561c
push ebp
call fcn.00572b46
add esp, 8
test eax, eax
jne 0x4c85f9
mov byte [ebp], al
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x18]
push ecx
push ebp
push edx
push str._s__s__s
lea eax, [esp + 0x410]
push eax
jmp 0x4c8636
cmp eax, 9
jne 0x4c8622
lea ecx, [esp + 0x18]
push ecx
jmp 0x4c8598
mov ecx, dword [esp + 0x10]
push ebx
push ebp
push ecx
lea edx, [esp + 0x40c]
push 0x579a48
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x400]
lea eax, [esp + 0x400]
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4c8653
pop ebx
pop edi
pop esi
mov eax, 1
pop ebp
add esp, 0x7d8
ret 4