Function at 0x4ce1b0
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.00570260
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x4ce1e2
mov byte [ebp], 0
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x4ce1f0
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x7d8
ret 4
push ebx
push 0x40
push ebp
call fcn.00570260
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4ce211
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 0x4ce202
push 0x20
push edi
call fcn.00570260
add esp, 8
test eax, eax
je 0x4ce22e
mov byte [eax], 0
push 0x20
push ebp
call fcn.00570260
add esp, 8
test eax, eax
je 0x4ce240
mov byte [eax], 0
push 0x20
push ebx
call fcn.00570260
add esp, 8
test eax, eax
je 0x4ce252
mov byte [eax], 0
xor edi, edi
cmp esi, 0xa
jl 0x4ce265
sub esi, 0xa
mov dword [esp + 0x14], esi
mov edi, 1
cmp esi, 1
je 0x4ce279
cmp esi, 3
je 0x4ce279
cmp esi, 6
je 0x4ce279
cmp esi, 8
jne 0x4ce2af
mov al, byte [ebp]
cmp al, 0x2b
je 0x4ce294
cmp al, 0x2d
je 0x4ce294
cmp al, 0x2a
je 0x4ce294
cmp al, 0x7e
je 0x4ce294
cmp al, 0x5e
je 0x4ce294
cmp al, 0x3d
jne 0x4ce2af
mov eax, ebp
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ce2a0
sub eax, edx
cmp eax, 1
jbe 0x4ce2af
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ce2b4
sub eax, edx
cmp eax, 0xa
jbe 0x4ce2d6
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ce2c8
sub eax, edx
cmp eax, 0xa
ja 0x4ce2c2
cmp esi, 3
je 0x4ce2ee
cmp esi, 4
je 0x4ce2ee
cmp esi, 8
je 0x4ce2ee
cmp esi, 9
jne 0x4ce3be
push 0x3d
push ebx
call fcn.00570260
add esp, 8
test eax, eax
je 0x4ce34d
cmp eax, ebx
jbe 0x4ce311
mov cl, byte [eax - 1]
dec eax
cmp cl, 0x2e
je 0x4ce310
cmp eax, ebx
ja 0x4ce301
jmp 0x4ce311
inc eax
mov byte [eax], 0x2a
mov dl, byte [eax + 1]
inc eax
test dl, dl
mov ecx, eax
je 0x4ce32d
mov edi, edi
mov dl, byte [ecx + 1]
inc ecx
cmp dl, 0x2e
je 0x4ce336
test dl, dl
jne 0x4ce320
cmp byte [ecx], 0x2e
jne 0x4ce3bb
mov dl, byte [ecx]
test dl, dl
je 0x4ce3bb
lea esp, [esp]
mov byte [eax], dl
mov dl, byte [ecx + 1]
inc eax
inc ecx
test dl, dl
jne 0x4ce340
jmp 0x4ce3bb
mov eax, dword [esp + 0x7ec]
test eax, eax
je 0x4ce3be
test byte [eax + 0x1e80], 0x20
je 0x4ce3be
push 0x5891c4
push ebx
call fcn.00570b40
add esp, 8
test eax, eax
je 0x4ce3be
cmp eax, ebx
jbe 0x4ce387
mov cl, byte [eax - 1]
dec eax
cmp cl, 0x2e
je 0x4ce386
cmp eax, ebx
ja 0x4ce377
jmp 0x4ce387
inc eax
mov byte [eax], 0x2a
mov dl, byte [eax + 1]
inc eax
test dl, dl
mov ecx, eax
je 0x4ce3a1
mov dl, byte [ecx + 1]
inc ecx
cmp dl, 0x2e
je 0x4ce3a6
test dl, dl
jne 0x4ce394
cmp byte [ecx], 0x2e
jne 0x4ce3bb
mov dl, byte [ecx]
test dl, dl
je 0x4ce3bb
lea esp, [esp]
mov byte [eax], dl
mov dl, byte [ecx + 1]
inc eax
inc ecx
test dl, dl
jne 0x4ce3b0
mov byte [eax], 0
cmp byte [ebx], 0
mov esi, ebx
je 0x4ce3eb
mov al, byte [esi]
cmp al, 0x2e
je 0x4ce3e3
cmp al, 0x2a
je 0x4ce3e3
cmp al, 0x3f
je 0x4ce3e3
movzx eax, al
push eax
call fcn.00570e57
add esp, 4
test eax, eax
je 0x4ce443
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4ce3c5
push 0x2e
push ebx
call fcn.00570980
add esp, 8
test eax, eax
je 0x4ce56c
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 0x4ce410
lea edi, [esp + 0x18]
dec edi
nop
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4ce420
mov cx, word [0x5891c0]
mov dl, byte [0x5891c2]
mov word [edi], cx
mov byte [edi + 2], dl
mov byte [eax], 0x2e
jmp 0x4ce57e
test edi, edi
push 0x2e
push ebx
je 0x4ce4c1
xor edi, edi
call fcn.00570260
add esp, 8
test eax, eax
je 0x4ce470
mov cl, byte [eax + 1]
inc edi
inc eax
test cl, cl
je 0x4ce470
push 0x2e
push eax
call fcn.00570260
add esp, 8
test eax, eax
jne 0x4ce458
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 0x4ce478
mov al, byte [esp + 0x18]
test al, al
lea esi, [esp + 0x18]
je 0x4ce4b8
mov edi, edi
movzx ecx, byte [esi]
push ecx
call fcn.00570e57
add esp, 4
test eax, eax
je 0x4ce4a5
mov byte [esi], 0x3f
jmp 0x4ce4b0
cmp byte [esi], 0x2e
jne 0x4ce4b0
dec edi
cmp edi, 1
je 0x4ce4b8
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4ce490
lea ebx, [esp + 0x18]
jmp 0x4ce57e
call fcn.00570260
mov esi, eax
add esp, 8
test esi, esi
je 0x4ce553
mov al, byte [esi + 1]
inc esi
test al, al
je 0x4ce53f
push 0x2e
push esi
call fcn.00570260
add esp, 8
test eax, eax
je 0x4ce52b
mov al, byte [0x583cfa]
mov dx, word [0x583cf8]
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 0x4ce503
lea edi, [esp + 0x18]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4ce511
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 0x4ce57e
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 0x4ce533
jmp 0x4ce57e
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 0x4ce547
jmp 0x4ce57e
lea edx, [esp + 0x18]
mov eax, ebx
sub edx, ebx
jmp 0x4ce560
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4ce560
jmp 0x4ce57e
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 0x4ce574
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4ce5a3
push ebx
push ebp
lea eax, [esp + 0x408]
push 0x5891b4
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4ce7bf
cmp eax, 1
jne 0x4ce606
mov eax, ebp
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ce5b0
sub eax, edx
cmp eax, 0xa
jb 0x4ce5d4
mov edi, edi
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ce5c6
sub eax, edx
cmp eax, 0xa
jae 0x4ce5c0
push 0x584674
push ebp
call fcn.005809c6
add esp, 8
test eax, eax
jne 0x4ce5e9
mov byte [ebp], al
push ebx
push ebp
lea ecx, [esp + 0x408]
push 0x5891a8
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4ce7bf
cmp eax, 2
jne 0x4ce627
push ebx
lea edx, [esp + 0x404]
push 0x584660
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x4ce7bf
cmp eax, 3
jne 0x4ce68a
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ce631
sub eax, edx
cmp eax, 0xa
jb 0x4ce654
nop
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ce646
sub eax, edx
cmp eax, 0xa
jae 0x4ce640
push 0x584674
push ebp
call fcn.005809c6
add esp, 8
test eax, eax
jne 0x4ce669
mov byte [ebp], al
lea eax, [esp + 0x18]
push eax
push ebp
lea ecx, [esp + 0x408]
push 0x5891a8
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4ce7bf
cmp eax, 4
jne 0x4ce6af
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x404]
push 0x584660
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x4ce7bf
cmp eax, 5
je 0x4ce7a2
cmp eax, 6
jne 0x4ce712
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ce6c2
sub eax, edx
cmp eax, 0xa
jb 0x4ce6e4
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ce6d6
sub eax, edx
cmp eax, 0xa
jae 0x4ce6d0
push 0x584674
push ebp
call fcn.005809c6
add esp, 8
test eax, eax
jne 0x4ce6f9
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 0x4ce7b6
cmp eax, 7
jne 0x4ce738
push ebx
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x408]
push 0x589190
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4ce7bf
cmp eax, 8
jne 0x4ce793
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ce742
sub eax, edx
cmp eax, 0xa
jb 0x4ce764
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ce756
sub eax, edx
cmp eax, 0xa
jae 0x4ce750
push 0x584674
push ebp
call fcn.005809c6
add esp, 8
test eax, eax
jne 0x4ce779
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 0x4ce7b6
cmp eax, 9
jne 0x4ce7a2
lea ecx, [esp + 0x18]
push ecx
jmp 0x4ce718
mov ecx, dword [esp + 0x10]
push ebx
push ebp
push ecx
lea edx, [esp + 0x40c]
push 0x588cd8
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 0x4ce7d3
pop ebx
pop edi
pop esi
mov eax, 1
pop ebp
add esp, 0x7d8
ret 4