Function at 0x46a8b0
Capabilities:
Parse credit card information

Disassembly:
push ebx
mov ebx, eax
push edi
movzx edi, byte [ebx]
mov eax, edi
mov dl, 4
cmp eax, 0x2e
jg 0x46a997
je 0x46a983
sub eax, 9
cmp eax, 0x24
ja case.0x46a8dd.11
movzx eax, byte [eax + 0x46ada8]
jmp dword [eax*4 + 0x46ad74]
movzx ecx, byte [ebx + 1]
xor eax, eax
inc eax
jmp 0x46a8f2
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x51d4d8], 1
jne 0x46a8ed
mov dword [esi], 0x97
jmp 0x46ad6e
cmp byte [ebx + 1], 0x2d
jne 0x46a925
movzx ecx, byte [ebx + 2]
push 2
pop eax
jmp 0x46a91f
cmp ecx, 0xa
je 0x46a8fb
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x46a915
jmp 0x46a8fb
mov dword [esi], 0x5a
xor eax, eax
inc eax
jmp 0x46ad6e
mov dword [esi], 0x16
jmp 0x46a92b
mov dword [esi], 0x17
jmp 0x46a92b
mov dword [esi], 0x59
jmp 0x46a92b
mov dword [esi], 0x5b
jmp 0x46a92b
mov dword [esi], 0x5d
jmp 0x46a92b
cmp byte [ebx + 1], 0x3d
push 2
pop eax
jne 0x46ad68
mov dword [esi], 0x4e
jmp 0x46ad6e
mov dword [esi], 0x1a
jmp 0x46a92b
mov dword [esi], 0x55
jmp 0x46a92b
movzx eax, byte [ebx + 1]
test byte [eax + 0x51d4d8], dl
jne 0x46a9e3
mov dword [esi], 0x7a
jmp 0x46a92b
cmp eax, 0x3f
jg 0x46abab
je 0x46ab88
cmp eax, 0x3b
jg 0x46aaff
je 0x46aaf5
cmp eax, 0x2f
je 0x46aab7
jle case.0x46a8dd.11
cmp eax, 0x39
jle 0x46a9e3
cmp eax, 0x3a
je case.0x46a8dd.35
test byte [edi + 0x51d4d8], 0x46
jne 0x46acdb
xor eax, eax
inc eax
jmp 0x46ad68
mov dword [esi], 0x84
mov cl, byte [ebx]
cmp cl, 0x30
jne 0x46aa24
mov al, byte [ebx + 1]
cmp al, 0x78
je 0x46a9fb
cmp al, 0x58
jne 0x46aa24
movzx eax, byte [ebx + 2]
test byte [eax + 0x51d4d8], 8
je 0x46aa24
movzx ecx, byte [ebx + 3]
push 3
pop eax
jmp 0x46aa16
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x51d4d8], 8
jne 0x46aa11
jmp 0x46ad6e
xor eax, eax
movzx ecx, cl
jmp 0x46aa30
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x51d4d8], dl
jne 0x46aa2b
cmp byte [eax + ebx], 0x2e
jne 0x46aa51
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x51d4d8], dl
jne 0x46aa3e
mov dword [esi], 0x85
mov cl, byte [eax + ebx]
cmp cl, 0x65
je 0x46aa5e
cmp cl, 0x45
jne 0x46aaa5
mov cl, byte [eax + ebx + 1]
movzx edi, cl
test byte [edi + 0x51d4d8], dl
jne 0x46aa84
cmp cl, 0x2b
je 0x46aa77
cmp cl, 0x2d
jne 0x46aaa5
movzx ecx, byte [eax + ebx + 2]
test byte [ecx + 0x51d4d8], dl
je 0x46aaa5
add eax, 2
jmp 0x46aa8a
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x51d4d8], dl
jne 0x46aa89
mov dword [esi], 0x85
jmp 0x46aaa5
mov dword [esi], 0x96
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x51d4d8], 0x46
jne 0x46aa9e
jmp 0x46ad6e
cmp byte [ebx + 1], 0x2a
jne 0x46aaea
mov cl, byte [ebx + 2]
test cl, cl
je 0x46aaea
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x46aad5
cmp byte [eax + ebx], 0x2f
je 0x46aae4
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x46a8fb
inc eax
jmp 0x46aaca
inc eax
jmp 0x46a8fb
mov dword [esi], 0x5c
jmp 0x46a92b
xor eax, eax
inc eax
mov dword [esi], eax
jmp 0x46ad6e
sub eax, 0x3c
je 0x46ab4c
dec eax
je 0x46ab37
dec eax
jne case.0x46a8dd.11
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x46ab1f
mov dword [esi], 0x53
jmp 0x46ab5b
cmp eax, 0x3e
jne 0x46ab2c
mov dword [esi], 0x58
jmp 0x46ab5b
mov dword [esi], 0x50
jmp 0x46a92b
xor eax, eax
mov dword [esi], 0x4f
cmp byte [ebx + 1], 0x3d
sete al
inc eax
jmp 0x46ad6e
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x46ab63
mov dword [esi], 0x51
push 2
pop eax
jmp 0x46ad6e
cmp eax, 0x3e
jne 0x46ab70
mov dword [esi], 0x4e
jmp 0x46ab5b
cmp eax, 0x3c
jne 0x46ab7d
mov dword [esi], 0x57
jmp 0x46ab5b
mov dword [esi], 0x52
jmp 0x46a92b
xor eax, eax
mov dword [esi], 0x87
movzx ecx, byte [ebx + 1]
inc eax
mov dl, 4
jmp 0x46ab9e
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x51d4d8], dl
jne 0x46ab99
jmp 0x46ad6e
sub eax, 0x40
je case.0x46a8dd.35
sub eax, 0x18
je 0x46ac79
sub eax, 3
je 0x46ac4b
sub eax, 5
je case.0x46a8dd.34
sub eax, 0x18
je 0x46ac79
sub eax, 4
je 0x46abec
dec eax
dec eax
jne case.0x46a8dd.11
mov dword [esi], 0x60
jmp 0x46a92b
cmp byte [ebx + 1], 0x7c
je 0x46abfd
mov dword [esi], 0x56
jmp 0x46a92b
mov dword [esi], 0x5e
jmp 0x46ab5b
movzx ecx, byte [ebx + 1]
xor eax, eax
inc eax
jmp 0x46ac24
cmp ecx, edi
jne 0x46ac1f
movzx edx, byte [ebx + eax + 1]
cmp edx, edi
jne 0x46ac28
inc eax
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x46ac11
cmp ecx, 0x27
jne 0x46ac38
mov dword [esi], 0x61
jmp 0x46ab46
test ecx, ecx
je 0x46ad68
mov dword [esi], 0x1b
jmp 0x46ab46
xor eax, eax
inc eax
mov ecx, edi
jmp 0x46ac5b
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x46ac60
inc eax
cmp ecx, 0x5d
jne 0x46ac52
xor edx, edx
cmp ecx, 0x5d
setne dl
dec edx
and edx, 0xffffff85
add edx, 0x96
mov dword [esi], edx
jmp 0x46ad6e
cmp byte [ebx + 1], 0x27
jne case.0x46a8dd.11
push 2
mov dword [esi], 0x86
movzx ecx, byte [ebx + 2]
pop eax
jmp 0x46ac97
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x51d4d8], 8
jne 0x46ac92
cmp byte [eax + ebx], 0x27
jne 0x46acb7
mov ecx, eax
and ecx, reloc.WS2_32.dll_accept
jns 0x46acb5
dec ecx
or ecx, 0xfffffffe
inc ecx
je 0x46accc
mov dword [esi], 0x96
jmp 0x46acc5
cmp cl, 0x27
je 0x46accc
inc eax
mov cl, byte [eax + ebx]
test cl, cl
jne 0x46acbf
cmp byte [eax + ebx], 0
je 0x46ad6e
jmp 0x46ab46
movzx eax, byte [ebx + 1]
xor edi, edi
inc edi
jmp 0x46ace9
inc edi
movzx eax, byte [edi + ebx]
test byte [eax + 0x51d4d8], 0x46
jne 0x46ace4
call fcn.0046a822
mov dword [esi], eax
mov eax, edi
jmp 0x46ad6e
mov dword [esi], 0x87
movzx ecx, byte [ebx + 1]
xor eax, eax
xor edx, edx
inc eax
test ecx, ecx
je 0x46ad68
movzx edi, cl
test byte [edi + 0x51d4d8], 0x46
je 0x46ad1f
inc edx
jmp 0x46ad34
cmp ecx, 0x28
jne 0x46ad28
test edx, edx
jg 0x46ad3f
cmp ecx, 0x3a
jne 0x46ad64
cmp byte [ebx + eax + 1], cl
jne 0x46ad64
inc eax
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x46ad10
jmp 0x46ad64
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x46ad56
test byte [ecx + 0x51d4d8], 1
jne 0x46ad56
cmp ecx, 0x29
jne 0x46ad3f
cmp ecx, 0x29
jne 0x46ad5e
inc eax
jmp 0x46ad64
mov dword [esi], 0x96
test edx, edx
jne 0x46ad6e
mov dword [esi], 0x96
pop edi
pop ebx
ret