Function at 0x4fff60
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x230
mov eax, dword [0x5f300c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0x14]
push esi
mov eax, dword [eax]
mov esi, edx
push edi
xor edi, edi
mov dword [ebp - 0x230], eax
push 0x104
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x228], esi
push edi
push eax
mov dword [ebp - 0x220], ecx
mov dword [ebp - 0x224], ebx
mov dword [ebp - 0x214], edi
mov byte [ebp - 0x20d], 1
mov byte [ebp - 0x215], 0
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
test esi, esi
je 0x4fffe8
mov ecx, dword [ebp - 0x220]
lea ecx, [ecx]
mov al, byte [ecx + edi]
cmp al, 0x20
je 0x4fffdd
sub al, 9
cmp al, 4
ja 0x4fffe2
inc edi
cmp edi, esi
jb 0x4fffd0
mov dword [ebp - 0x214], edi
mov esi, dword [ebp + 8]
mov ecx, ebx
add esi, edi
push 0
lea eax, [esi - 1]
push eax
call fcn.00475ef0
cmp edi, dword [ebp - 0x228]
jae 0x500bce
mov eax, dword [ebp - 0x220]
cmp byte [eax + edi], 0x3a
lea ecx, [eax + edi]
jne 0x50002b
xor eax, eax
cmp byte [ecx + 1], 0x3a
setne al
lea eax, [eax*2 + 1]
push eax
jmp 0x500bc4
push 3
mov edx, 0x5bd404
call fcn.00472c60
add esp, 4
test eax, eax
jne 0x500064
mov ecx, dword [ebp - 0x220]
mov al, byte [ecx + edi + 3]
test al, al
je 0x50005d
movsx eax, al
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
add esp, 4
test eax, eax
je 0x500064
push 1
jmp 0x500bc4
mov eax, dword [ebp - 0x220]
movsx eax, byte [eax + edi]
test eax, eax
js 0x5000bd
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isalpha]
add esp, 4
test eax, eax
mov eax, dword [ebp - 0x220]
je 0x5000c3
cmp byte [eax + edi + 1], 0x3a
jne 0x5000c3
mov dl, byte [eax + edi + 2]
movsx ecx, dl
call fcn.004200d0
test al, al
jne 0x5000b6
mov eax, dword [ebp - 0x220]
cmp dl, 0x5c
jne 0x5000c3
movsx ecx, byte [eax + edi + 3]
call fcn.004200d0
test al, al
je 0x5000bd
push 2
jmp 0x500bc4
mov eax, dword [ebp - 0x220]
cmp byte [eax + edi], 0x40
jne 0x5000e0
push 4
push esi
mov ecx, ebx
call fcn.00475ef0
mov eax, dword [ebp - 0x220]
inc edi
mov dword [ebp - 0x214], edi
mov ecx, dword [ebp - 0x228]
cmp edi, ecx
jae 0x500bc2
mov edi, edi
mov al, byte [eax + edi]
cmp al, 0x20
je 0x5000fd
sub al, 9
cmp al, 4
ja 0x500114
inc edi
mov dword [ebp - 0x214], edi
cmp edi, ecx
jae 0x500bc2
mov eax, dword [ebp - 0x220]
jmp 0x5000f0
cmp edi, ecx
jae 0x500bc2
mov esi, dword [ebp + 8]
nop
cmp edi, esi
jbe 0x500133
lea eax, [esi - 1]
mov ecx, ebx
push 0
add eax, edi
push eax
call fcn.00475ef0
xor edx, edx
mov dword [ebp - 0x21c], edx
jmp 0x500140
cmp edx, 0x104
jae 0x500bdf
mov eax, dword [ebp - 0x220]
mov al, byte [eax + edi]
movsx ecx, al
cmp al, 0x20
je 0x500191
cmp al, 9
jl 0x500164
cmp al, 0xd
jle 0x500191
push ecx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov edx, dword [ebp - 0x21c]
inc edi
add esp, 4
mov dword [ebp - 0x214], edi
mov byte [ebp + edx - 0x108], al
inc edx
mov dword [ebp - 0x21c], edx
cmp edi, dword [ebp - 0x228]
jb 0x500140
cmp edx, 0x104
jae 0x500bdf
mov byte [ebp + edx - 0x108], 0
xor esi, esi
mov bl, byte [ebp - 0x108]
cmp bl, 0x5c
je 0x500b57
cmp bl, 0x2e
je 0x500b57
cmp bl, 0x3b
je 0x500b57
cmp bl, 0x20
je 0x500b57
cmp bl, 9
je 0x500b57
cmp bl, 0x5b
je 0x500b57
cmp bl, 0x5d
je 0x500b57
cmp bl, 0x22
je 0x500b57
cmp bl, 0x27
je 0x500b57
cmp bl, 0x2f
je 0x500b57
cmp bl, 0x3a
jne 0x500271
cmp byte [ebp - 0x107], bl
jne 0x500223
cmp byte [ebp - 0x20d], 0
je 0x500223
push esi
jmp 0x50040b
mov eax, dword [ebp - 0x220]
sub eax, edx
mov al, byte [eax + edi - 1]
cmp al, 0x20
je 0x500243
cmp al, 9
jl 0x500354
cmp al, 0xd
jg 0x500354
mov esi, dword [ebp + 8]
mov eax, edi
mov ebx, dword [ebp - 0x224]
sub eax, edx
dec eax
mov ecx, ebx
push 0
add eax, esi
push eax
call fcn.00475ef0
lea eax, [esi - 1]
mov ecx, ebx
push 0xa
add eax, edi
push eax
call fcn.00475ef0
jmp 0x500b95
cmp bl, 0x21
jne 0x500354
mov ecx, dword [ebp - 0x224]
sub edi, edx
add edi, dword [ebp + 8]
push 0
lea eax, [edi - 1]
push eax
call fcn.00475ef0
mov ebx, dword [ebp - 0x21c]
mov esi, 1
cmp ebx, esi
jbe 0x500300
nop
mov al, byte [ebp + esi - 0x108]
cmp al, 0x21
je 0x500300
cmp al, 0x3d
je 0x500300
cmp al, 0x2b
je 0x500300
cmp al, 0x3e
je 0x500300
cmp al, 0x3c
je 0x500300
cmp al, 0x7c
je 0x500300
cmp al, 0x26
je 0x500300
cmp al, 0x3f
je 0x500300
cmp al, 0x2a
je 0x500300
cmp al, 0x28
je 0x500300
cmp al, 0x29
je 0x500300
cmp al, 0x5c
je 0x500300
cmp al, 0x2e
je 0x500300
cmp al, 0x3b
je 0x500300
cmp al, 0x20
je 0x500300
cmp al, 9
je 0x500300
cmp al, 0x5b
je 0x500300
cmp al, 0x5d
je 0x500300
cmp al, 0x22
je 0x500300
cmp al, 0x27
je 0x500300
cmp al, 0x2f
je 0x500300
inc esi
cmp esi, ebx
jb 0x5002a0
cmp byte [ebp + esi - 0x108], 0x21
jne 0x500322
mov edi, dword [ebp + 8]
inc esi
mov eax, esi
dec edi
invalid