Function at 0x4600a0
Capabilities:
Parse credit card information
Reference processor manufacturer constants

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov esi, ecx
mov al, byte [esp + 0x30]
movaps xmm0, xmmword [0x4ea3d0]
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
test al, al
je 0x460538
lea ebp, [esi + 2]
mov eax, 1
xor ecx, ecx
cpuid
mov ebx, edx
shr ebx, 0x1a
and bl, 1
mov byte [esi], bl
mov ebx, ecx
shr ebx, 9
and bl, 1
mov byte [esi + 1], bl
mov ebx, eax
shr ebx, 8
and ebx, 0xf
mov edi, eax
shr edi, 0x10
and edi, 0xff0
or edi, ebx
mov ebx, eax
shr ebx, 4
and ebx, 0xf
shr eax, 0xc
and eax, 0xf0
or eax, ebx
mov dword [esi + 8], 0x8000
cmp edi, 6
mov dword [esp + 0x18], edx
mov dword [esp + 4], ecx
jne 0x4602d8
mov dword [esp + 0x10], ebp
cmp eax, 0x1c
sete cl
mov ebp, eax
and ebp, 0xfffffffe
cmp ebp, 0x26
sete ch
or ch, cl
lea ebx, [eax - 0x35]
cmp ebx, 3
setb cl
cmp eax, 0x4a
sete bl
or bl, cl
or bl, ch
cmp ebp, 0x4c
sete cl
cmp eax, 0x5a
sete ch
or ch, cl
cmp eax, 0x5d
sete cl
or cl, ch
or cl, bl
mov byte [esp], cl
test cl, 1
je 0x460177
mov dword [esi + 8], 0x800
mov dword [esp + 0x14], edi
cmp al, 0x16
je 0x460183
cmp al, 0xf
jne 0x46018a
mov dword [esi + 8], 0x2000
mov ebx, eax
and ebx, 0xfffffffb
cmp ebx, 0x1a
sete ch
cmp eax, 0x1f
sete dl
cmp eax, 0x2e
sete dh
or dh, dl
or dh, ch
cmp eax, 0x25
sete dl
cmp eax, 0x2c
sete ch
or ch, dl
cmp eax, 0x2f
sete dl
or dl, ch
or dl, dh
cmp eax, 0x2a
sete ch
cmp eax, 0x2d
sete dh
or dh, ch
cmp ebx, 0x3a
sete ch
or ch, dh
cmp eax, 0x3c
sete dh
or dh, ch
or dh, dl
cmp eax, 0x3f
sete dl
lea ebx, [eax - 0x45]
cmp ebx, 2
setb ch
or ch, dl
cmp eax, 0x3d
sete dl
or dl, ch
mov ebx, eax
and ebx, 0xfffffff7
cmp ebx, 0x47
sete ch
or ch, dl
or ch, dh
cmp eax, 0x56
sete dl
mov ebx, eax
and ebx, 0xffffffef
cmp ebx, 0x4e
sete dh
or dh, dl
cmp ebx, 0x8e
sete dl
or dl, dh
lea edi, [eax - 0xa5]
cmp edi, 2
setb dh
or dh, dl
cmp eax, 0x55
sete dl
or dl, dh
or dl, ch
cmp ebp, 0x66
sete cl
or cl, dl
and cl, 1
mov dword [esp + 8], ecx
lea edx, [eax - 0x7d]
cmp edx, 2
setb dl
cmp eax, 0x6a
sete ch
cmp eax, 0x6c
sete dh
or dh, ch
or dh, dl
cmp eax, 0xa7
sete dl
cmp ebp, 0x8c
sete ch
or ch, dl
or ch, dh
mov edx, eax
and edx, 0xffffffbf
cmp edx, 0x8f
sete dl
cmp eax, 0x8a
sete cl
or dl, cl
or dl, ch
and dl, 1
mov dword [esp + 0xc], edx
mov dh, byte [esp]
or dh, cl
cmp eax, 0x5c
sete dl
cmp eax, 0x5f
sete ch
or ch, dl
cmp eax, 0x7a
sete dl
or dl, ch
cmp ebx, 0x86
sete ch
cmp eax, 0x9c
sete al
or al, ch
or al, dl
or al, dh
mov dword [esp], eax
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
jmp 0x460324
cmp edi, 0x5f
jne 0x4602e2
cmp eax, 3
jb 0x460306
mov dword [esp], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
cmp edi, 0x6f
jne 0x460324
or al, 0x20
and al, 0xef
cmp al, 0x20
jne 0x46030d
mov dword [esi + 8], 0x1000
mov dword [esp], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov eax, edi
and eax, 0xffffffef
mov dword [esp + 0x14], eax
cmp eax, 0x6f
sete al
mov ecx, edi
and ecx, 0xffffffdf
cmp ecx, 0x8f
sete cl
or cl, al
mov byte [esi + 0xc], cl
mov word [ebp + 4], 0
mov dword [ebp], 0
mov eax, 7
xor ecx, ecx
cpuid
mov edx, ecx
mov eax, dword [esp + 4]
and eax, 0x1c000000
cmp eax, 0x1c000000
jne 0x4603fb
xor ecx, ecx
mov dword [esp + 4], edx
xgetbv
mov edx, dword [esp + 4]
mov ecx, eax
and ecx, 6
cmp ecx, 6
jne 0x4603fb
mov byte [esi + 2], 1
mov ecx, ebx
shr cl, 5
and cl, 1
mov byte [esi + 3], cl
and eax, 0xe0
cmp eax, 0xe0
jne 0x4603fb
and ebx, 0xc0010000
cmp ebx, 0xc0010000
sete byte [esi + 4]
sete byte [esp + 0x10]
mov eax, 7
mov ecx, 1
cpuid
mov eax, dword [esp + 4]
shr al, 1
and al, byte [esp + 0x10]
mov byte [esi + 5], al
test edx, 0x80000
mov edx, dword [esp + 4]
je 0x4603fb
mov eax, 0x24
xor ecx, ecx
cpuid
mov edx, dword [esp + 4]
test bl, bl
setne al
shr ebx, 0x11
and ebx, 1
and bl, al
mov byte [esi + 7], bl
and dh, 1
mov byte [esi + 6], dh
xor eax, eax
xor ecx, ecx
cpuid
mov ebp, eax
mov al, 1
cmp ecx, 0x20555043
jne 0x460423
cmp ebx, 0x74726956
jne 0x460423
cmp edx, 0x206c6175
je 0x460456
cmp ecx, 0x41545874
jne 0x46043b
cmp ebx, 0x7263694d
jne 0x46043b
cmp edx, 0x666f736f
je 0x460456
xor eax, eax
cmp ebx, 0x74726956
jne 0x460456
cmp edx, 0x416c6175
jne 0x460456
cmp ecx, 0x656c7070
sete al
mov byte [esi + 0xf], al
mov byte [esi + 0xd], 0
cmp ecx, 0x6c65746e
jne 0x4604a7
and dword [esp + 0x18], 0x10000000
je 0x4604a7
cmp ebx, 0x756e6547
jne 0x4604a7
cmp edx, 0x49656e69
jne 0x4604a7
cmp ebp, 0xb
jl 0x4604a7
mov eax, 0xb
xor ecx, ecx
cpuid
and ecx, 0xff00
cmp ecx, 0x100
jne 0x4604a7
and ebx, 0xfffe
je 0x4604a7
mov byte [esi + 0xd], 1
sub esp, 0x10
movaps xmm0, xmmword [0x4ea3e0]
movups xmmword [esp], xmm0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
test eax, eax
je 0x4604d1
test al, 0x3f
je 0x4604d7
push 0x8000
push 0
push eax
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov byte [esi + 0xe], 0
jmp 0x4604e9
mov byte [esi + 0xe], 1
push 0x8000
push 0
push eax
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov ecx, dword [esp + 8]
mov eax, 3
test cl, cl
jne 0x460535
cmp byte [esp + 0xc], 0
setne al
mov ecx, dword [esp]
or cl, al
mov eax, 1
test cl, 1
jne 0x460535
cmp edi, 0x1f
je 0x460535
cmp edi, 0x6f
je 0x460535
xor eax, eax
cmp dword [esp + 0x14], 0x8f
sete al
cmp edi, 0xaf
lea ecx, [eax + eax*2]
mov eax, 3
cmovne eax, ecx
mov dword [esi + 0x10], eax
mov eax, esi
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret 4