Function at 0x407c50
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47be54
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x4a5018]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x3c], eax
lea ecx, [eax + 0x30]
call fcn.00408930
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x408628
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x54], eax
mov dword [ebp - 4], 0
mov eax, dword [0x4aa584]
test eax, eax
jne 0x407cd9
call fcn.0042cdf0
mov esi, dword [0x4aaa90]
call fcn.0042cdf0
xor ecx, ecx
lea eax, [esi + esi*4]
cmp dword [0x4aaa94], ecx
setne cl
inc ecx
lea eax, [ecx + eax*2]
mov dword [0x4aa584], eax
push eax
lea eax, [ebp - 0x54]
push 0x492ee0
push eax
call fcn.00407700
add esp, 0xc
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
push 0x40
call fcn.004551d2
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x48], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
push 7
mov dword [ebp - 0x28], 0
push str.product
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004065c0
mov esi, dword [0x4aaa7c]
test esi, esi
je 0x407d54
lock inc dword [esi + 4]
mov esi, dword [0x4aaa7c]
mov ecx, dword [0x4aaa78]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], esi
mov byte [ebp - 4], 3
lea edx, [ebp - 0x30]
mov eax, dword [ecx]
push edx
call dword [eax + 0x18]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2c]
mov edx, dword [eax]
call fcn.00422410
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x48]
mov edi, dword [eax]
lea eax, [ebp - 0x28]
push eax
call fcn.00404db0
mov edx, edi
lea ebx, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x407d92
sub edx, ebx
mov ecx, eax
push edx
push edi
call fcn.004065c0
mov byte [ebp - 4], 4
or ebx, 0xffffffff
mov edx, dword [ebp - 0x2c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x407dc5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
mov eax, ebx
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x407de3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test esi, esi
je 0x407e06
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x407e06
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x407e06
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x407e3e
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407e34
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408632
push edx
push ecx
call fcn.00455202
add esp, 8
push 9
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.device_id
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004065c0
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 6
call fcn.0041e2c0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2c]
mov edx, dword [eax]
call fcn.00422410
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x48]
mov esi, dword [eax]
lea eax, [ebp - 0x28]
push eax
call fcn.00404db0
mov edx, esi
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x407e97
sub edx, edi
mov ecx, eax
push edx
push esi
call fcn.004065c0
mov byte [ebp - 4], 7
mov eax, ebx
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x407ec7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 6
mov eax, ebx
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x407ee5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x407f1d
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407f13
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408637
push edx
push ecx
call fcn.00455202
add esp, 8
push 2
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push 0x492bf4
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004065c0
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 9
call fcn.0041e190
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x2c]
mov edx, dword [eax]
call fcn.00422410
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x48]
mov esi, dword [eax]
lea eax, [ebp - 0x28]
push eax
call fcn.00404db0
mov edx, esi
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x407f76
sub edx, edi
mov ecx, eax
push edx
push esi
call fcn.004065c0
mov byte [ebp - 4], 0xa
mov eax, ebx
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x407fa6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 9
mov eax, ebx
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x407fc4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x407ffc
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407ff2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40863c
push edx
push ecx
call fcn.00455202
add esp, 8
push 7
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.version
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004065c0
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.0041d620
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x2c]
mov edx, dword [eax]
call fcn.00422410
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x48]
mov esi, dword [eax]
lea eax, [ebp - 0x28]
push eax
call fcn.00404db0
mov edx, esi
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x408055
sub edx, edi
mov ecx, eax
push edx
push esi
call fcn.004065c0
mov byte [ebp - 4], 0xd
mov eax, ebx
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x408085
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xc
mov eax, ebx
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4080a3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x4080db
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4080d1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408641
push edx
push ecx
call fcn.00455202
add esp, 8
push 2
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push 0x492f04
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004065c0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x2c]
mov edx, dword [ebp - 0x54]
call fcn.00422410
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x48]
mov esi, dword [eax]
lea eax, [ebp - 0x28]
push eax
call fcn.00404db0
mov edx, esi
lea edi, [edx + 1]
nop dword [eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x408130
sub edx, edi
mov ecx, eax
push edx
push esi
call fcn.004065c0
mov byte [ebp - 4], 0xf
mov eax, ebx
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x408160
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x408198
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40818e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408646
push edx
push ecx
call fcn.00455202
add esp, 8
push 0x2c
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
call fcn.004551d2
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x5c], eax
mov byte [ebp - 4], 0x11
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x40864b
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x30], eax
mov esi, dword [0x4aaa7c]
test esi, esi
je 0x4081f3
lock inc dword [esi + 4]
mov esi, dword [0x4aaa7c]
mov ecx, dword [0x4aaa78]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], esi
sub esp, 0x18
mov byte [ebp - 4], 0x13
mov eax, dword [ecx]
push esp
call dword [eax + 0xac]
lea eax, [ebp - 0x30]
push eax
push 0
lea edx, [ebp - 0x5c]
lea ecx, [ebp - 0x48]
call fcn.0041ff00
add esp, 0x20
mov byte [ebp - 4], 0x12
test esi, esi
je 0x40824a
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x40824a
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x40824a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x408655
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x38], eax
push 0x492c04
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x14
call fcn.004067d0
test al, al
jne 0x408288
push 4
push 0x492c04
lea ecx, [ebp - 0x38]
call fcn.004069d0
mov eax, dword [0x4aaa84]
mov dword [ebp - 0x34], eax
test eax, eax
je 0x4082a0
lock inc dword [eax + 4]
mov eax, dword [0x4aaa84]
mov dword [ebp - 0x34], eax
mov ecx, dword [0x4aaa80]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], eax
mov byte [ebp - 4], 0x16
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x40865f
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x60], esi
mov byte [ebp - 4], 0x17
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x408669
mov eax, dword [ecx]
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x40], edi
mov byte [ebp - 4], 0x18
lea edx, [ebp - 0x64]
mov ecx, dword [ebp - 0x2c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x10]
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x19
push ecx
lea ecx, [ebp - 0x40]
mov edx, eax
push ecx
lea ecx, [ebp - 0x38]
push ecx
lea ecx, [ebp - 0x50]
call fcn.004029a0
add esp, 0xc
mov byte [ebp - 4], 0x1b
mov eax, ebx
mov edx, dword [ebp - 0x64]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x408336
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1c
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x408351
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1d
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40836c
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x34]
test esi, esi
je 0x408392
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x408392
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x408392
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov byte [ebp - 4], 0x1f
mov eax, ebx
mov edx, dword [ebp - 0x38]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4083b0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x408673
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x34], eax
push str.application_json
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x20
call fcn.004067d0
test al, al
jne 0x4083ee
push 0x10
push str.application_json
lea ecx, [ebp - 0x34]
call fcn.004069d0
mov byte [ebp - 4], 0x21
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x40867d
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x38], eax
push str.Content_Type
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x22
call fcn.004067d0
test al, al
jne 0x408430
push 0xc
push str.Content_Type
lea ecx, [ebp - 0x38]
call fcn.004069d0
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 0x23
mov ecx, dword [ebp - 0x50]
push eax
lea eax, [ebp - 0x38]
add ecx, 0x28
push eax
call fcn.00417ba0
mov byte [ebp - 4], 0x21
mov eax, ebx
mov edx, dword [ebp - 0x38]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x408465
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1f
mov eax, ebx
mov edx, dword [ebp - 0x34]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x408483
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x30]
cmp dword [esi - 4], 1
mov edi, dword [esi - 0xc]
mov dword [ebp - 0x40], edi
jle 0x40849e
push edi
lea ecx, [ebp - 0x30]
call fcn.00405400
mov esi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x50]
add ecx, 0x30
mov dword [ebp - 0x2c], ecx
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov dword [ebp - 0x34], edx
sub edx, eax
cmp edi, edx
jae 0x4084b9
add eax, edi
jmp 0x4084eb
jbe 0x4084ee
mov eax, dword [ecx + 8]
sub eax, dword [ecx]
cmp edi, eax
jbe 0x4084d0
push ecx
push edi
call fcn.00412b60
mov ecx, dword [ebp - 0x2c]
jmp 0x4084ee
sub edi, edx
push edi
push 0
push dword [ebp - 0x34]
call fcn.004573c0
mov eax, dword [ebp - 0x34]
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
add eax, edi
mov edi, dword [ebp - 0x40]
mov dword [ecx + 4], eax
push edi
push esi
push dword [ecx]
call fcn.00456e40
mov edi, dword [ebp - 0x4c]
add esp, 4
mov dword [ebp - 0x40], esp
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 0
test edi, edi
je 0x408517
lock inc dword [edi + 4]
mov ecx, dword [ebp - 0x50]
mov dword [eax], ecx
mov dword [eax + 4], edi
mov byte [ebp - 4], 0x24
mov eax, dword [0x4aa590]
test eax, eax
jne 0x40854d
push 0x7c
call fcn.004551d2
add esp, 4
mov dword [ebp - 0x60], eax
mov ecx, eax
mov byte [ebp - 4], 0x25
call fcn.00424c10
mov byte [ebp - 4], 0x24
mov dword [0x4aa590], eax
mov ecx, dword [ebp - 0x3c]
push 0
push ecx
push dword [ecx + 0x2c]
mov ecx, eax
mov byte [ebp - 4], 0x1f
call fcn.00425070
test eax, eax
je 0x40856e
mov dword [ebp - 0x3c], 1
jmp 0x408586
mov eax, dword [ebp - 0x3c]
mov ecx, eax
mov dword [eax + 0x40], 1
call fcn.00408690
mov dword [ebp - 0x3c], 0
test edi, edi
je 0x4085a9
mov eax, ebx
lock xadd dword [edi + 4], eax
jne 0x4085a9
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, ebx
lock xadd dword [edi + 8], eax
jne 0x4085a9
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov byte [ebp - 4], 0x11
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4085c4
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x5c]
push dword [eax + 4]
lea eax, [ebp - 0x5c]
push eax
mov ecx, eax
call fcn.004059c0
push 0x2c
push dword [ebp - 0x5c]
call fcn.00455202
add esp, 8
lea ecx, [ebp - 0x48]
call fcn.00404f10
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x54]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x408609
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00454d47
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00402980
call fcn.00459a0a
call fcn.00459a0a
call fcn.00459a0a
call fcn.00459a0a
call fcn.00459a0a
push 0x80004005
call fcn.00402980
push 0x80004005
call fcn.00402980
push 0x80004005
call fcn.00402980
push 0x80004005
call fcn.00402980
push 0x80004005
call fcn.00402980
push 0x80004005
call fcn.00402980
int3