Function at 0x46fd00
Capabilities:
Parse credit card information

Disassembly:
push ebx
mov ebx, dword [esp + 0xc]
push ebp
xor ebp, ebp
cmp ebx, ebp
jne 0x46fd12
pop ebp
or eax, 0xffffffff
pop ebx
ret
push esi
mov esi, dword [ebx]
mov al, byte [esi]
cmp al, 0x61
jl 0x46fd23
cmp al, 0x7a
jle 0x46fdc5
cmp al, 0x41
jl 0x46fd2f
cmp al, 0x5a
jle 0x46fdc5
cmp al, 0x30
jl 0x46fd3b
cmp al, 0x39
jle 0x46fdc5
cmp al, 0x2d
je 0x46fdc5
cmp al, 0x5f
je 0x46fdc5
cmp al, 0x2e
je 0x46fdc5
cmp al, 0x21
je 0x46fdc5
cmp al, 0x7e
je 0x46fdc5
cmp al, 0x2a
je 0x46fdc5
cmp al, 0x27
je 0x46fdc5
cmp al, 0x28
je 0x46fdc5
cmp al, 0x29
je 0x46fdc5
cmp al, 0x25
jne 0x46fda9
mov cl, byte [esi + 1]
cmp cl, 0x30
jl 0x46fd74
cmp cl, 0x39
jle 0x46fd88
cmp cl, 0x61
jl 0x46fd7e
cmp cl, 0x66
jle 0x46fd88
cmp cl, 0x41
jl 0x46fda9
cmp cl, 0x46
jg 0x46fda9
mov cl, byte [esi + 2]
cmp cl, 0x30
jl 0x46fd95
cmp cl, 0x39
jle 0x46fdc5
cmp cl, 0x61
jl 0x46fd9f
cmp cl, 0x66
jle 0x46fdc5
cmp cl, 0x41
jl 0x46fda9
cmp cl, 0x46
jle 0x46fdc5
cmp al, 0x3b
je 0x46fdc5
cmp al, 0x3a
je 0x46fdc5
cmp al, 0x26
je 0x46fdc5
cmp al, 0x3d
je 0x46fdc5
cmp al, 0x2b
je 0x46fdc5
cmp al, 0x24
je 0x46fdc5
cmp al, 0x2c
jne 0x46fdd7
cmp al, 0x25
jne 0x46fdd1
add esi, 3
jmp 0x46fd15
inc esi
jmp 0x46fd15
cmp byte [esi], 0x40
push edi
mov edi, dword [esp + 0x14]
jne 0x46fe0d
cmp edi, ebp
je 0x46fe0a
mov eax, dword [edi + 0x10]
cmp eax, ebp
je 0x46fdf6
push eax
call dword [0x490c98]
add esp, 4
mov eax, dword [ebx]
mov ecx, esi
push ebp
sub ecx, eax
push ecx
push eax
call fcn.0046f6f0
add esp, 0xc
mov dword [edi + 0x10], eax
inc esi
jmp 0x46fe27
cmp edi, ebp
je 0x46fe25
mov eax, dword [edi + 0x10]
cmp eax, ebp
je 0x46fe22
push eax
call dword [0x490c98]
add esp, 4
mov dword [edi + 0x10], ebp
mov esi, dword [ebx]
mov al, byte [esi]
cmp al, 0x2f
mov ebx, esi
jne 0x46fe65
cmp edi, ebp
je 0x46fe5e
mov eax, dword [edi + 8]
cmp eax, ebp
je 0x46fe44
push eax
call dword [0x490c98]
add esp, 4
mov eax, dword [edi + 0xc]
cmp eax, ebp
mov dword [edi + 8], ebp
je 0x46fe58
push eax
call dword [0x490c98]
add esp, 4
mov dword [edi + 0xc], ebp
mov dword [edi + 0x14], ebp
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
cmp al, 0x30
jl 0x46ff24
cmp al, 0x39
jg 0x46ff24
cmp al, 0x39
jg 0x46fe81
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jge 0x46fe75
mov al, byte [esi]
cmp al, 0x2e
jne 0x46ff24
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl 0x46ff24
cmp al, 0x39
jg 0x46ff24
nop
cmp al, 0x39
jg 0x46feac
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jge 0x46fea0
mov al, byte [esi]
cmp al, 0x2e
jne 0x46ff24
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl 0x46ff24
cmp al, 0x39
jg 0x46ff24
mov edi, edi
cmp al, 0x39
jg 0x46fecc
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jge 0x46fec0
mov al, byte [esi]
cmp al, 0x2e
jne 0x46ff24
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl 0x46ff24
cmp al, 0x39
jg 0x46ff24
mov edi, edi
cmp al, 0x39
jg 0x46feec
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jge 0x46fee0
cmp edi, ebp
je 0x47000b
mov eax, dword [edi + 8]
cmp eax, ebp
je 0x46ff05
push eax
call dword [0x490c98]
add esp, 4
mov eax, dword [edi + 0xc]
cmp eax, ebp
mov dword [edi + 8], ebp
je 0x46ff19
push eax
call dword [0x490c98]
add esp, 4
mov edx, esi
push ebp
sub edx, ebx
push edx
jmp 0x46ffff
cmp al, 0x61
jl 0x46ff2c
cmp al, 0x7a
jle 0x46ff44
cmp al, 0x41
jl 0x46ff34
cmp al, 0x5a
jle 0x46ff44
cmp al, 0x30
jl 0x470067
cmp al, 0x39
jg 0x470067
mov al, byte [esi]
cmp al, 0x61
jl 0x46ff4e
cmp al, 0x7a
jle 0x46ff60
cmp al, 0x41
jl 0x46ff56
cmp al, 0x5a
jle 0x46ff60
cmp al, 0x30
jl 0x46ff89
cmp al, 0x39
jg 0x46ff89
mov edi, edi
mov al, byte [esi]
cmp al, 0x61
jl 0x46ff6a
cmp al, 0x7a
jle 0x46ff7e
cmp al, 0x41
jl 0x46ff72
cmp al, 0x5a
jle 0x46ff7e
cmp al, 0x30
jl 0x46ff7a
cmp al, 0x39
jle 0x46ff7e
cmp al, 0x2d
jne 0x46ff81
inc esi
jmp 0x46ff60
cmp byte [esi], 0x2e
jne 0x46ff44
inc esi
jmp 0x46ff44
lea ecx, [esi - 1]
lea esp, [esp]
mov al, byte [ecx]
cmp al, 0x61
jl 0x46ff9a
cmp al, 0x7a
jle 0x46ffaa
cmp al, 0x41
jl 0x46ffa2
cmp al, 0x5a
jle 0x46ffaa
cmp al, 0x30
jl 0x46ffb5
cmp al, 0x39
jg 0x46ffb5
cmp al, 0x2e
je 0x46ffb5
cmp ecx, ebx
jb 0x46ffb5
dec ecx
jmp 0x46ff90
mov al, byte [ecx + 1]
cmp al, 0x61
jl 0x46ffc0
cmp al, 0x7a
jle 0x46ffd0
cmp al, 0x41
jl 0x47005d
cmp al, 0x5a
jg 0x47005d
cmp edi, ebp
je 0x47000b
mov eax, dword [edi + 8]
cmp eax, ebp
je 0x46ffe5
push eax
call dword [0x490c98]
add esp, 4
mov eax, dword [edi + 0xc]
cmp eax, ebp
mov dword [edi + 8], ebp
je 0x46fff9
push eax
call dword [0x490c98]
add esp, 4
mov eax, esi
push ebp
sub eax, ebx
push eax
push ebx
call fcn.0046f6f0
add esp, 0xc
mov dword [edi + 0xc], eax
cmp byte [esi], 0x3a
jne 0x470050
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl 0x470050
cmp al, 0x39
jg 0x470050
cmp edi, ebp
je 0x470023
mov dword [edi + 0x14], ebp
mov al, byte [esi]
cmp al, 0x30
jl 0x470050
lea esp, [esp]
cmp al, 0x39
jg 0x470050
cmp edi, ebp
je 0x470048
mov ecx, dword [edi + 0x14]
movsx edx, al
lea ecx, [ecx + ecx*4]
lea eax, [edx + ecx*2 - 0x30]
mov dword [edi + 0x14], eax
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jge 0x470030
mov ecx, dword [esp + 0x18]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
pop edi
pop esi
pop ebp
mov eax, 7
pop ebx
ret
pop edi
pop esi
pop ebp
mov eax, 6
pop ebx
ret