Function at 0x10173e64
Capabilities:
Get number of processors

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10271d48
mov eax, dword fs:[0]
push eax
sub esp, 0x448
mov eax, dword [0x10285008]
xor eax, esp
mov dword [esp + 0x440], eax
push ebx
push esi
push edi
mov eax, dword [0x10285008]
xor eax, esp
push eax
lea eax, [esp + 0x458]
mov dword fs:[0], eax
mov eax, dword [0x102c7ff4]
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x14], ecx
test eax, eax
je 0x10174789
cmp dword [eax + 0x568], ecx
je 0x10174789
test byte [0x102b2ab4], 2
je 0x10174789
cmp dword [0x102c7ff8], ecx
je 0x10174789
cmp dword [0x102c7fec], ecx
je 0x10174789
cmp dword [0x102c7ff0], ecx
je 0x10174789
mov eax, dword [0x102ba1fc]
movzx eax, word [eax]
push eax
call dword [sym.imp.msvcrt.dll_towlower]
pop ecx
push 4
pop ecx
push 2
pop ebx
push 0x77
movzx esi, ax
mov dword [esp + 0x1c], 0x62
mov dword [esp + 0x28], 0x64
mov dword [esp + 0x2c], 0x6c
pop eax
push 0x73
pop edi
push 0x70
pop edx
cmp esi, 0x61
je 0x10173f9e
cmp si, word [esp + 0x18]
je 0x10173f9e
cmp esi, 0x63
je 0x10173f9e
cmp si, word [esp + 0x24]
je 0x10173f9e
cmp esi, 0x66
je 0x10173f9e
cmp esi, 0x67
je 0x10173f9e
cmp si, word [esp + 0x28]
je 0x10173f9e
cmp esi, 0x75
je 0x10173f9e
cmp si, ax
je 0x10173f9e
cmp si, di
je 0x10173f9e
push 0x71
pop eax
cmp si, ax
je 0x10173f9e
cmp esi, 0x74
je 0x10173f9e
cmp esi, 0x76
je 0x10173f9e
push 0x79
pop eax
cmp si, ax
je 0x10173f9e
cmp si, dx
je 0x10173f9e
mov si, word [0x102a4174]
mov di, word [0x102a4170]
jmp 0x10174093
mov ecx, esi
call fcn.100f9420
mov ecx, dword [0x102ba1fc]
push 0x64
pop edx
cmp si, dx
je 0x10173fe0
cmp si, di
je 0x10173fe0
push 0x77
pop eax
cmp si, ax
je 0x10173fe0
push 0x70
pop eax
cmp si, ax
jne 0x10173fe3
mov eax, dword [0x102c7ff0]
cmp byte [eax + 0x28], 0
sete al
dec al
and al, 0xd
add al, dl
movsx si, al
jmp 0x10173fe3
mov si, word [ecx]
push 0x20
add ecx, ebx
mov word [0x102a4174], si
mov dword [0x102ba1fc], ecx
pop edi
mov word [0x102a4170], di
cmp si, dx
je 0x1017404b
push 0x71
pop eax
cmp si, ax
je 0x1017404b
push 0x6c
pop eax
cmp si, ax
jne 0x10174034
push 0x62
pop eax
cmp word [ecx], ax
jne 0x101740e6
mov di, ax
add ecx, ebx
mov word [0x102a4170], di
mov dword [0x102ba1fc], ecx
jmp 0x101740e6
push 0x79
pop eax
cmp si, ax
jne 0x10174090
movzx eax, word [ecx]
cmp ax, word [esp + 0x18]
je 0x1017401d
cmp ax, dx
jmp 0x10174017
movzx edx, word [ecx]
mov eax, edx
sub eax, 0x53
je 0x1017407e
sub eax, 0xe
je 0x1017407e
sub eax, 0xf
je 0x1017407e
sub eax, 3
je 0x1017407e
push 4
sub eax, ebx
jne 0x10174092
mov di, dx
add ecx, ebx
mov word [0x102a4170], di
mov dword [0x102ba1fc], ecx
jmp 0x10174092
add ecx, ebx
mov di, dx
mov dword [0x102ba1fc], ecx
mov word [0x102a4170], di
push 4
pop ecx
push 0x64
pop eax
cmp si, ax
je 0x101740a3
push 0x71
pop eax
cmp si, ax
jne 0x101740e6
movzx eax, di
sub eax, 0x53
je 0x101740de
sub eax, 0xe
je 0x101740d8
sub eax, 0xf
je 0x101740d2
sub eax, 3
je 0x101740c8
sub eax, ebx
jne 0x101740e6
mov dword [esp + 0x14], 8
jmp 0x101740e6
mov dword [esp + 0x14], 1
jmp 0x101740e6
mov dword [esp + 0x14], ebx
jmp 0x101740e6
mov dword [esp + 0x14], ecx
jmp 0x101740e6
mov dword [esp + 0x14], 0x50
lea eax, [esp + 0x1f4]
push eax
call fcn.10173bf7
movzx ecx, si
mov ebx, eax
sub ecx, 0x53
je 0x101746a7
dec ecx
je 0x10174699
sub ecx, 0x13
je 0x1017464d
sub ecx, 5
je 0x101745dc
sub ecx, 7
je 0x101746a7
dec ecx
je 0x10174699
dec ecx
dec ecx
je 0x1017416d
test ebx, ebx
jne 0x1017413e
xor edx, edx
mov ecx, 0x1001
call fcn.101f3103
push dword [esp + 0x14]
mov ecx, ebx
call fcn.10172d96
mov ecx, dword [esp + 0x458]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x440]
xor ecx, esp
call fcn.10236010
mov esp, ebp
pop ebp
ret
push 5
push dword [0x102c7ff8]
lea ecx, [esp + 0x3c]
call fcn.101f1f59
xor ebx, ebx
mov esi, ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x460], ebx
cmp dword [0x102d0534], ebx
jne 0x101741a3
mov ecx, 0x102d0530
call fcn.101cdb79
xor eax, eax
mov dword [esp + 0x64], 0xf
mov word [esp + 0x10c], ax
lea edi, [esp + 0x10e]
stosd dword es:[edi], eax
lea ecx, [esp + 0x34]
push 2
mov dword [esp + 0x5c], 8
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
pop edi
push 0x101f2930
mov dword [esp + 0x80], edi
call fcn.101f2096
call fcn.101797f2
cmp ax, 0x2d
mov eax, dword [0x102ba1fc]
je 0x101741fd
cmp word [eax], 0x2f
jne 0x101742f4
add eax, edi
lea ecx, [esp + 0x34]
mov dword [0x102ba1fc], eax
call fcn.101f1fba
test eax, eax
jne 0x101741e3
mov ecx, dword [0x102ba1fc]
movzx edx, word [ecx]
mov eax, edx
sub eax, 0x56
je 0x1017426b
sub eax, 0x10
je 0x10174283
sub eax, 3
je 0x10174261
sub eax, 0xb
je 0x10174253
sub eax, edi
je 0x10174249
push edx
push 0x1005e138
call fcn.100d3aab
pop ecx
pop ecx
mov ecx, dword [0x102ba1fc]
jmp 0x10174276
mov dword [esp + 0x58], 1
jmp 0x10174276
or dword [esp + 0x44], 0x200
mov dword [esp + 0x64], ebx
jmp 0x10174276
or dword [esp + 0x44], 0x1000
jmp 0x10174276
xor eax, eax
inc eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], eax
add ecx, edi
mov dword [0x102ba1fc], ecx
jmp 0x101741e3
add ecx, edi
push 0x1608
mov dword [0x102ba1fc], ecx
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
pop ecx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x460], 1
test eax, eax
je 0x101742b2
mov ecx, eax
call fcn.101cd251
mov esi, eax
jmp 0x101742b4
mov esi, ebx
mov dword [esp + 0x18], esi
mov byte [esp + 0x460], bl
mov dword [esp + 0x28], esi
test esi, esi
jne 0x101742d3
xor edx, edx
mov ecx, 0x1022
jmp 0x10174139
and dword [esp + 0x44], 0xfffffffe
lea edx, [esp + 0x10c]
push ecx
push ebx
mov ecx, edi
mov dword [esp + 0x64], 1
mov dword [esp + 0x60], ebx
call fcn.1014310f
push 0x11
lea edx, [esp + 0x18]
pop ecx
call fcn.101f376a
mov ebx, eax
xor eax, eax
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x10174315
cmp word [ebx], ax
mov dword [esp + 0x74], ebx
jne 0x10174319
mov dword [esp + 0x74], eax
test esi, esi
je 0x101743cb
lea ecx, [esp + 0x124]
call fcn.101c5840
mov byte [esp + 0x460], 2
mov dword [esp + 0x124], 0x1004f804
mov byte [esp + 0x460], 3
mov ecx, 0x102d0530
inc dword [0x102aa194]
push esi
call fcn.10149f58
xor eax, eax
push 0x88
push eax
lea eax, [esp + 0x134]
push eax
call sub.msvcrt.dll_memset
mov eax, dword [esp + 0x128]
lea edx, [esp + 0x130]
add esp, 0xc
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x120]
xor ecx, ecx
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x130], eax
push ecx
mov ecx, dword [0x102c7ff8]
call fcn.101cdf47
xor eax, eax
mov byte [esp + 0x460], al
lea ecx, [esp + 0x124]
mov dword [esp + 0x124], 0x10054784
call fcn.101c5880
xor eax, eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
lea eax, [esp + 0x34]
push eax
mov eax, dword [0x102d0540]
mov dword [esp + 0x104], 1
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x102dc578]
mov ecx, 0x102d0540
call edi
test eax, eax
je 0x10174460
mov ecx, eax
call fcn.10210755
push eax
push 0x1008d3b8
call fcn.100d3aab
cmp dword [0x102d0534], 0
pop ecx
pop ecx
jne 0x10174432
mov ecx, 0x102d0530
call fcn.101cdb79
mov eax, dword [0x102d0540]
mov edi, dword [eax]
mov ecx, edi
call dword [0x102dc578]
mov ecx, 0x102d0540
call edi
test eax, eax
jne 0x10174544
push 0x1008d3f8
call fcn.100d3aab
pop ecx
jmp 0x10174544
xor ecx, ecx
mov edi, ecx
mov dword [esp + 0x100], ecx
mov ecx, dword [esp + 0xb8]
and ecx, 0x7fffffff
mov dword [esp + 0xb8], ecx
cmp dword [esp + 0xfc], edi
jbe 0x101744dc
mov ebx, dword [esp + 0xf4]
mov eax, dword [esp + 0xfc]
add ebx, 0x54
mov dword [esp + 0x24], eax
mov edx, ebx
lea eax, [edx + 2]
mov dword [esp + 0x2c], eax
mov ax, word [edx]
add edx, 2
cmp ax, word [esp + 0x30]
jne 0x101744a6
sub edx, dword [esp + 0x2c]
sar edx, 1
cmp edi, edx
jae 0x101744bf
mov edi, edx
add ebx, 0xff8
dec dword [esp + 0x24]
jne 0x1017449d
cmp dword [esp + 0x64], edi
jae 0x101744dc
cmp dword [esp + 0x64], 0
je 0x101744dc
mov dword [esp + 0x64], edi
xor eax, eax
mov ebx, eax
cmp dword [esp + 0xfc], eax
jbe 0x1017451d
mov edi, eax
mov eax, dword [esp + 0xf4]
lea ecx, [esp + 0x34]
add eax, edi
push ecx
push dword [eax + 0x1c]
push eax
call fcn.101c8d00
inc ebx
add edi, 0xff8
cmp ebx, dword [esp + 0xfc]
jb 0x101744eb
mov ecx, dword [esp + 0xb8]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x94]
lea eax, [esp + 0x34]
or ecx, 0x80000000
mov dword [esp + 0xb8], ecx
mov ecx, edi
push eax
call dword [0x102dc578]
call edi
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0xf4], 0
je 0x10174567
push dword [esp + 0xf4]
call dword [sym.imp.msvcrt.dll_free]
xor eax, eax
pop ecx
mov dword [esp + 0xf4], eax
jmp 0x10174569
xor eax, eax
mov dword [esp + 0x100], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
test esi, esi
je 0x101745a6
push esi
mov ecx, 0x102d0530
call fcn.100ea6af
mov ecx, dword [0x102c7ff8]
xor eax, eax
push eax
mov edx, 0x102d0540
call fcn.101cdf47
dec dword [0x102aa194]
test ebx, ebx
je 0x101745b8
mov ecx, dword [0x102ba1fc]
mov ax, word [esp + 0x14]
mov word [ecx], ax
or dword [esp + 0x460], 0xffffffff
test esi, esi
je 0x10174149
mov ecx, esi
call fcn.10143894
push esi
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void__]
pop ecx
jmp 0x10174149
push 0x62
pop eax
xor edx, edx
xor ebx, ebx
cmp di, ax
mov dword [esp + 0x20], edx
sete bl
call fcn.10179827
mov edi, 0x102ba1a0
test ax, ax
je 0x10174632
push ecx
push edx
push 3
mov edx, edi
pop ecx
call fcn.1014310f
call fcn.10179827
test ax, ax
je 0x10174632
xor ecx, ecx
call fcn.10143024
mov esi, eax
mov dword [esp + 0x20], edx
call fcn.10179827
test ax, ax
je 0x1017463a
xor ecx, ecx
call fcn.10143024
jmp 0x1017463d
push 4
pop eax
push 0x20
pop esi
jmp 0x1017463d
push 4
pop eax
push ebx
push eax
mov edx, esi
mov ecx, edi
call fcn.1017479a
jmp 0x10174149
xor ecx, ecx
call fcn.10143024
xor ebx, ebx
mov edi, eax
mov esi, ebx
mov dword [esp + 0x20], ebx
call fcn.10179827
test ax, ax
je 0x1017468b
xor ecx, ecx
call fcn.10143024
mov esi, eax
sub esi, edi
cmp ebx, ebx
ja 0x1017467f
cmp esi, 0x800
jbe 0x1017468b
xor edx, edx
mov ecx, 0x1002
jmp 0x10174139
mov edx, esi
mov ecx, edi
call fcn.10174919
jmp 0x10174149
xor eax, eax
push eax
push ecx
call fcn.101dbe54
jmp 0x10174149
push dword [esp + 0x14]
mov ecx, ebx
call fcn.10172436
call fcn.10172455
xor eax, eax
mov dword [esp + 0x1c], 1
push eax
push 0x100000
push 3
push 2
lea edx, [esp + 0x2c]
mov dword [esp + 0x30], eax
mov ecx, 0x102ba1a0
call fcn.10142e3d
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
jmp 0x1017477a
lea eax, [esp + 0x1cc]
add esi, 0xffffffff
push eax
push dword [0x102ba1b4]
adc edi, 0xffffffff
push dword [0x102ba1b0]
push ecx
push ecx
call fcn.100ec194
test eax, eax
jne 0x1017477a
push 8
pop eax
mov word [esp + 0x1dc], ax
lea ecx, [esp + 0x1dc]
xor eax, eax
xor edx, edx
mov word [esp + 0x1de], ax
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1e4], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x1e8], eax
call fcn.100b435e
push 0x53
pop eax
xor ecx, ecx
cmp word [0x102a4174], ax
movzx eax, word [esp + 0x1cc]
sete cl
xor edx, edx
inc ecx
div ecx
mov ecx, ebx
push eax
lea eax, [esp + 0x1e0]
push eax
call fcn.10172572
mov eax, esi
or eax, edi
jne 0x101746ea
jmp 0x10174149
xor edx, edx
mov ecx, 0x1011
jmp 0x10174139