Function at 0x4601f0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x48d127
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x12c
push esi
mov esi, ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 8], esi
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x9c]
push eax
call dword [sym.imp.Staff2.dll_public:_void___thiscall_CSWMRLock::constructor_class_CSWMRG__]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x138], 0
call dword [sym.imp.Staff2.dll_public:_int___thiscall_CSWMRLock::WriteLock_void_]
mov edx, dword [esp + 0x140]
lea ecx, [esi + 0x361c]
push edx
call fcn.00488b10
test eax, eax
jne 0x460276
lea ecx, [esp + 0x1c]
call dword [sym.imp.Staff2.dll_public:_int___thiscall_CSWMRLock::Unlock_void_]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x138], 0xffffffff
call dword [sym.imp.Staff2.dll_public_virtual:_void___thiscall_CSWMRLock::destructor_void_]
jmp 0x4605dd
push ebp
mov ebp, dword [eax + 4]
test ebp, ebp
je 0x4605bd
push ebx
mov ebx, dword [esp + 0x14c]
push edi
mov eax, ebp
mov ebp, dword [ebp]
add eax, 8
lea ecx, [esp + 0x10]
push eax
call sub.MFC42.DLL_CString::CString_1
mov edi, dword [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x3d]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov byte [esp + 0x144], 1
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x3c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
push ecx
push edx
lea ecx, [eax + 0x31dc]
call fcn.00488180
test eax, eax
je 0x46043d
mov ecx, dword [esp + 0x56]
mov eax, dword [esp + 0x18]
and ecx, 0x8000
cmp ecx, 0x8000
lea esi, [eax + 0x37d8]
lea edi, [eax + 0x42d0]
jne 0x460421
mov edx, dword [esp + 0x14c]
lea eax, [esi + 0xa40]
push edx
push eax
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x460421
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x43a4], 1
jne 0x4605a2
mov eax, dword [edi + 0x60]
test eax, eax
je 0x4605a2
mov eax, dword [esi + 0x79c]
test eax, eax
jbe 0x4605a2
push 1
push ebx
call fcn.00439220
mov ecx, 0x1a
xor eax, eax
lea edi, [esp + 0x6c]
lea esi, [esp + 0x3c]
rep stosd dword es:[edi], eax
mov ecx, 0xb
lea edi, [esp + 0x9a]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, dword [esp + 0x18]
mov byte [esp + 0xcb], 4
mov ecx, dword [esi + 0x3f74]
cmp ecx, 0x1312d00
jbe 0x4603c1
mov eax, 0x51eb851f
mul dword [esi + 0x42d8]
mov edi, edx
mov eax, ecx
shr edi, 5
xor edx, edx
div edi
cmp al, 0x64
jae 0x4603df
mov byte [esp + 0xd0], al
jmp 0x4603e7
lea eax, [ecx + ecx*4]
xor edx, edx
lea eax, [eax + eax*4]
shl eax, 2
div dword [esi + 0x42d8]
cmp al, 0x64
jae 0x4603df
mov byte [esp + 0xd0], al
jmp 0x4603e7
mov byte [esp + 0xd0], 0x64
mov cx, word [esi + 0x3800]
mov word [esp + 0x20], cx
mov dx, word [esi + 0x3802]
mov word [esp + 0x22], dx
mov al, byte [esi + 0x3804]
lea ecx, [esp + 0x6c]
lea edx, [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov byte [esp + 0x2c], al
call fcn.004701f0
jmp 0x4605a2
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14c]
mov edx, dword [esp + 0x14]
push eax
push ecx
lea ecx, [edx + 0x361c]
jmp 0x46059d
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x34]
push eax
push ecx
mov ecx, dword [esi + 0x32c8]
lea edx, [esp + 0x44]
add ecx, 0x40
push edx
call fcn.0040a290
test eax, eax
je 0x46058a
mov eax, dword [esp + 0x56]
and eax, 0x8000
cmp eax, 0x8000
jne 0x46057b
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14c]
add edx, 0x15b
push ecx
push edx
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x46057b
mov edi, dword [esp + 0x1c]
mov eax, 0xcccccccd
mov esi, dword [edi + 0x2bc]
mov ecx, dword [edi + 0x120]
mul esi
shr edx, 3
cmp ecx, edx
jbe 0x4605a2
cmp ecx, esi
jbe 0x4604c6
mov ecx, esi
cmp ecx, ebx
jbe 0x4604ce
sub ecx, ebx
jmp 0x4604d0
xor ecx, ecx
cmp ecx, edx
jae 0x4604d6
mov ecx, edx
mov dword [edi + 0x120], ecx
mov ecx, 0x1a
xor eax, eax
lea edi, [esp + 0xd4]
rep stosd dword es:[edi], eax
mov ecx, 0xb
lea esi, [esp + 0x3c]
lea edi, [esp + 0x102]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, dword [esp + 0x1c]
mov byte [esp + 0x133], 4
mov ecx, dword [esi + 0x120]
cmp ecx, 0x1312d00
jbe 0x46053d
mov eax, 0x51eb851f
mul dword [esi + 0x2bc]
mov esi, edx
mov eax, ecx
shr esi, 5
xor edx, edx
div esi
cmp al, 0x64
jae 0x46055b
mov byte [esp + 0x138], al
jmp 0x460563
lea eax, [ecx + ecx*4]
xor edx, edx
lea eax, [eax + eax*4]
shl eax, 2
div dword [esi + 0x2bc]
cmp al, 0x64
jae 0x46055b
mov byte [esp + 0x138], al
jmp 0x460563
mov byte [esp + 0x138], 0x64
lea eax, [esp + 0xd4]
lea ecx, [esp + 0x34]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.004701f0
jmp 0x4605a2
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14c]
push edx
push eax
jmp 0x460597
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14c]
push ecx
push edx
lea ecx, [esi + 0x361c]
call fcn.00488a60
lea ecx, [esp + 0x10]
mov byte [esp + 0x144], 0
call fcn.00489b20
test ebp, ebp
jne 0x46028b
pop edi
pop ebx
lea ecx, [esp + 0x20]
call dword [sym.imp.Staff2.dll_public:_int___thiscall_CSWMRLock::Unlock_void_]
lea ecx, [esp + 0x20]
mov dword [esp + 0x13c], 0xffffffff
call dword [sym.imp.Staff2.dll_public_virtual:_void___thiscall_CSWMRLock::destructor_void_]
pop ebp
mov ecx, dword [esp + 0x130]
pop esi
mov dword fs:[0], ecx
add esp, 0x138
ret 8