Function at 0x47addc
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffbdc
xor eax, eax
push ebx
push esi
push edi
xor edi, edi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 4], eax
push esi
call sub.CC3260MT.DLL__strlen
pop ecx
mov dword [ebp - 0x18], eax
xor ebx, ebx
lea eax, [ebp - 0x424]
mov dword [ebp - 0x1c], eax
mov edx, esi
mov esi, edx
cmp ebx, dword [ebp - 0x18]
jge 0x47ae3b
movsx eax, byte [esi]
cmp eax, 0x20
je 0x47ae34
cmp eax, 0xd
je 0x47ae34
cmp eax, 0xa
je 0x47ae34
mov dl, byte [esi]
push edx
call fcn.0047adc0
pop ecx
mov ecx, dword [ebp - 0x1c]
mov byte [ecx], al
inc edi
inc dword [ebp - 0x1c]
inc ebx
inc esi
cmp ebx, dword [ebp - 0x18]
jl 0x47ae10
mov byte [ebp + edi - 0x424], 0
mov eax, dword [ebp + 8]
xor edi, edi
xor ebx, ebx
xor esi, esi
mov word [eax], 0
mov edx, dword [ebp + 8]
mov ecx, edx
mov dword [ebp - 0x20], ecx
jmp 0x47b09e
mov eax, esi
cmp eax, 5
ja case.default.0x47ae69
jmp dword [eax*4 + 0x47ae70]
mov al, byte [ebp + ebx - 0x424]
movsx edx, al
cmp edx, 0x41
jl 0x47aeaf
cmp edx, 0x48
jg 0x47aeaf
movsx ecx, al
add cx, 0xffbf
mov eax, dword [ebp - 0x20]
shl ecx, 0xd
mov word [eax], cx
jmp 0x47aeb9
mov eax, 0x14
jmp 0x47b0e5
inc esi
jmp case.default.0x47ae69
movsx edx, byte [ebp + ebx - 0x424]
cmp edx, 0x3d
je 0x47aed6
mov eax, 0x14
jmp 0x47b0e5
inc esi
jmp case.default.0x47ae69
mov al, byte [ebp + ebx - 0x424]
movsx edx, al
cmp edx, 0x41
jl 0x47af03
cmp edx, 0x48
jg 0x47af03
movsx ecx, al
add cx, 0xffbf
mov eax, dword [ebp - 0x20]
shl ecx, 0xa
or word [eax], cx
jmp 0x47af0d
mov eax, 0x14
jmp 0x47b0e5
inc esi
jmp case.default.0x47ae69
mov eax, 0xffff
movsx edx, byte [ebp + ebx - 0x424]
cmp edx, 0x2b
jne 0x47af27
xor eax, eax
cmp edx, 0x2d
jne 0x47af31
mov eax, 1
cmp edx, 0x3c
jne 0x47af3b
mov eax, 2
cmp edx, 0x2a
jne 0x47af45
mov eax, 3
cmp edx, 0x5e
jne 0x47af4f
mov eax, 4
cmp edx, 0x26
jne 0x47af59
mov eax, 5
cmp edx, 0x7c
jne 0x47af63
mov eax, 6
cmp edx, 0x3f
jne 0x47af6d
mov eax, 7
cmp eax, 0xffff
jne 0x47af7e
mov eax, 0x15
jmp 0x47b0e5
shl eax, 7
mov edx, dword [ebp - 0x20]
or word [edx], ax
inc esi
jmp case.default.0x47ae69
mov eax, 0xffff
movsx edx, byte [ebp + ebx - 0x424]
cmp edx, 0x30
jl 0x47b030
cmp edx, 0x39
jg 0x47b030
test edi, edi
jne 0x47afba
mov eax, 0x16
jmp 0x47b0e5
mov edx, dword [ebp - 0x20]
or word [edx], 0x40
push 0xa
push 0
lea ecx, [ebp - 0x10]
push ecx
call sub.CC3260MT.DLL__memset
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x14], eax
lea edx, [ebp - 0x10]
mov dword [ebp - 0x24], edx
lea eax, [ebp + ebx - 0x424]
jmp 0x47aff4
mov ecx, dword [ebp - 0x24]
mov dl, byte [eax]
inc ebx
mov byte [ecx], dl
inc dword [ebp - 0x14]
inc dword [ebp - 0x24]
inc eax
movsx edx, byte [eax]
cmp edx, 0x30
jl 0x47b001
cmp edx, 0x39
jle 0x47afe5
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x10]
dec ebx
mov byte [ebp + eax - 0x10], 0
push ecx
call fcn.00479794
pop ecx
cmp eax, 0x40
jb 0x47b023
mov eax, 0x18
jmp 0x47b0e5
mov edx, dword [ebp - 0x20]
or word [edx], ax
mov dword [ebp - 4], 1
movsx edx, byte [ebp + ebx - 0x424]
cmp edx, 0x41
jl 0x47b069
cmp edx, 0x48
jg 0x47b069
movsx eax, byte [ebp + ebx - 0x424]
add ax, 0xffbf
mov ecx, dword [ebp - 0x20]
shl eax, 3
or word [ecx], ax
test edi, edi
jne 0x47b062
mov eax, dword [ebp - 0x20]
or word [eax], 1
xor edx, edx
mov dword [ebp - 4], edx
jmp 0x47b077
cmp eax, 0xffff
jne 0x47b077
mov eax, 0x14
jmp 0x47b0e5
inc esi
jmp case.default.0x47ae69
movsx edx, byte [ebp + ebx - 0x424]
cmp edx, 0x2c
je 0x47b08e
mov eax, 0x14
jmp 0x47b0e5
xor esi, esi
inc edi
add dword [ebp - 0x20], 2
mov eax, dword [ebp - 0x20]
mov word [eax], 0
inc ebx
cmp byte [ebp + ebx - 0x424], 0
jne 0x47ae5e
cmp esi, 5
je 0x47b0b8
mov eax, 0x14
jmp 0x47b0e5
cmp dword [ebp - 4], 0
je 0x47b0c5
mov eax, 0x17
jmp 0x47b0e5
mov edx, dword [ebp + 8]
lea eax, [edi + 1]
or word [edx + edi*2], 4
cmp eax, 0x80
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
jbe 0x47b0e3
mov eax, 7
jmp 0x47b0e5
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret