Function at 0x1000c140
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x10093c78
mov eax, dword fs:[0]
push eax
sub esp, 0x174
mov eax, dword [0x100cd8ec]
xor eax, esp
mov dword [esp + 0x170], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x100cd8ec]
xor eax, esp
push eax
lea eax, [esp + 0x188]
mov dword fs:[0], eax
mov eax, dword [esp + 0x19c]
mov esi, ecx
mov dword [esp + 0x24], eax
call fcn.1002d4e0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x1009fc09
mov edi, eax
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov ecx, edi
call fcn.1002cc20
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x1009fc09
mov dword [esp + 0x3c], eax
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov ecx, edi
call fcn.1002cb80
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x1009fc09
mov dword [esp + 0x38], eax
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov ecx, edi
call fcn.1002cab0
mov edi, dword [esp + 0x198]
mov ebx, eax
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x64
mov eax, edi
sub eax, ecx
mov ebp, edi
lea ecx, [esp + 0x38]
sub ebp, eax
call dword [sym.imp.xwm_smartcard.dll_public:_void___thiscall_BIN_TEMP::constructor_void_]
lea ecx, [esp + 0x30]
mov dword [esp + 0x190], 0
call dword [sym.imp.xwm_smartcard.dll_public:_void___thiscall_BIN_TEMP::constructor_void_]
lea ecx, [esp + 0x5c]
mov byte [esp + 0x190], 1
call dword [sym.imp.xwm_smartcard.dll_public:_void___thiscall_CertificateData::constructor_void_]
lea ecx, [esp + 0x28]
mov byte [esp + 0x190], 2
call dword [sym.imp.xwm_smartcard.dll_public:_void___thiscall_BIN_TEMP::constructor_void_]
xor eax, eax
push 0x7f
push eax
lea edx, [esp + 0x10d]
push edx
mov byte [esp + 0x19c], 3
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], eax
mov byte [esp + 0x110], al
call sub.MSVCR80.dll_memset
push 0x7f
lea eax, [esp + 0x95]
push 0
push eax
mov byte [esp + 0x9c], 0
call sub.MSVCR80.dll_memset
push edi
call fcn.10007890
add esp, 0x1c
test al, al
jne 0x1000c2c6
mov ecx, dword [esi + 0x10]
push edi
push str.ICStoreToken::setUserCertificate____FAIL:_Not_ICStoreToken_Media___d_
push ecx
call fcn.10077b60
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
add esp, 0xc
mov ebp, 0x15ef3ce
push ebp
call eax
jmp 0x1000c4d5
cmp ebp, 0xc1c
jne 0x1000c440
mov byte [esp + 0x84], 0
mov byte [esp + 0x85], 0x20
mov byte [esp + 0x86], 0
mov byte [esp + 0x87], 1
mov byte [esp + 0x88], 8
mov ecx, dword [ebx]
mov dword [esp + 0x89], ecx
mov edx, dword [ebx + 4]
lea eax, [esp + 0x104]
push eax
mov eax, dword [esi + 8]
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x95], edx
lea edx, [esp + 0x8c]
push edx
push 0xd
push 0x64
call eax
mov ebp, eax
mov eax, dword [esp + 0x20]
mov cl, byte [esp + eax + 0x102]
cmp cl, 0x90
lea eax, [esp + eax + 0x104]
je 0x1000c4a5
cmp cl, 0x63
jne 0x1000c414
movzx ebx, byte [eax - 1]
sub ebx, 0xc0
test ebx, ebx
jle 0x1000c4d5
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
mov ebp, 0x15ef56c
push ebp
call eax
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
lea eax, [esp + 0x40]
push eax
call edx
cmp dword [eax + 0x18], 0x10
jb 0x1000c38d
mov eax, dword [eax + 4]
jmp 0x1000c390
add eax, 4
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1000c393
sub eax, edx
lea ecx, [esp + 0x40]
mov edi, eax
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
add edi, 0xa
push edi
call dword [sym.imp.MSVCR80.dll_malloc]
mov edi, eax
mov dword [edi], 0
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
add esp, 4
lea edx, [esp + 0x40]
push edx
call eax
cmp dword [eax + 0x18], 0x10
jb 0x1000c3d9
mov eax, dword [eax + 4]
jmp 0x1000c3dc
add eax, 4
push ebx
push eax
push str._s_d
push edi
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0x10
lea ecx, [esp + 0x40]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov esi, dword [esi + 0x14]
mov edx, dword [esi]
mov eax, dword [edx + 8]
push edi
push edi
push edi
push edi
push edi
push 0
push 0x15ef56c
mov ecx, esi
call eax
jmp 0x1000c4d5
cmp cl, 0x69
jne 0x1000c4d5
cmp byte [eax - 1], 0x84
jne 0x1000c4d5
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0x15ef56b
call eax
mov ebp, 0x15ef56b
jmp 0x1000c4d5
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
push ebx
push edx
push eax
mov ecx, esi
call fcn.1000b430
mov ebp, eax
test ebp, ebp
je 0x1000c460
push ebp
push str.ICStoreToken::setUserCertificate____FAIL:_verifyTokenPin___d_
jmp 0x1000c4c9
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x14]
push edx
push ebx
push eax
push ecx
mov ecx, esi
call fcn.1000b5e0
mov ebp, eax
test ebp, ebp
je 0x1000c489
mov edx, dword [esi + 0x10]
push ebp
push str.ICStoreToken::setUserCertificate____FAIL:_getCertificateCount___d_
push edx
jmp 0x1000c4cd
cmp dword [esp + 0x14], 0
jne 0x1000c4a5
mov eax, dword [esi + 0x10]
push str.ICStoreToken::setUserCertificate____Success:_NO_Certificate
push eax
call fcn.10077b60
add esp, 8
xor ebp, ebp
jmp 0x1000c4d5
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
push ebx
push ecx
push edx
push eax
push edi
mov ecx, esi
call fcn.1000b7a0
mov ebp, eax
test ebp, ebp
je 0x1000c4d5
push ebp
push str.ICStoreToken::setUserCertificate____FAIL:_setUserCertificate___d_
mov ecx, dword [esi + 0x10]
push ecx
call fcn.10077b60
add esp, 0xc
mov esi, dword [sym.imp.xwm_smartcard.dll_public:_void___thiscall_BIN_TEMP::destructor_void_]
lea ecx, [esp + 0x28]
mov byte [esp + 0x190], 2
call esi
lea ecx, [esp + 0x7c]
mov byte [esp + 0x190], 5
call esi
mov edi, dword [sym.imp.xwm_smartcard.dll_public:_void___thiscall_CertificateData_BASE::destructor_void_]
lea ecx, [esp + 0x6c]
mov byte [esp + 0x190], 4
call edi
lea ecx, [esp + 0x5c]
mov byte [esp + 0x190], 1
call edi
lea ecx, [esp + 0x30]
mov byte [esp + 0x190], 0
call esi
lea ecx, [esp + 0x38]
mov dword [esp + 0x190], 0xffffffff
call esi
mov eax, ebp
mov ecx, dword [esp + 0x188]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x170]
xor ecx, esp
call fcn.10090e24
add esp, 0x180
ret 8