Function at 0x42d840
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov eax, dword fs:[0x2c]
push ebx
push esi
push edi
mov ebx, dword [eax]
mov eax, dword [0x466f8c]
mov dword [ebp - 8], ebx
cmp eax, dword [ebx + 4]
jle 0x42d949
push 0x466f8c
call fcn.0042f70f
add esp, 4
cmp dword [0x466f8c], 0xffffffff
jne 0x42d949
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
xor esi, esi
mov dword [ebp - 4], esi
xor ebx, ebx
lea eax, [ebp - 4]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetLogicalProcessorInformation]
test eax, eax
jne 0x42d8ee
call edi
cmp eax, 0x7a
jne 0x42d8d9
test esi, esi
je 0x42d8b9
push esi
call fcn.00438084
add esp, 4
push dword [ebp - 4]
call fcn.004383b3
mov esi, eax
add esp, 4
test esi, esi
jne 0x42d896
push str._nError:_Allocation_failure_n
call fcn.00409910
mov ebx, dword [ebp - 0x40]
jmp 0x42d930
call edi
push eax
push str._nError__d_n
call fcn.00409910
mov ebx, dword [ebp - 0x40]
add esp, 8
jmp 0x42d933
mov ecx, dword [ebp - 4]
cmp ecx, 0x18
jb 0x42d92a
mov edi, 0x18
nop dword [eax + eax]
mov eax, dword [esi + edi - 0x14]
cmp eax, 3
ja case.default.0x42d909
jmp dword [eax*4 + 0x42dab0]
inc ebx
jmp case.0x42d909.1
push str._nError:_Unsupported_LOGICAL_PROCESSOR_RELATIONSHIP_value._n
call fcn.00409910
mov ecx, dword [ebp - 4]
add esp, 4
add edi, 0x18
cmp edi, ecx
jbe 0x42d900
push esi
call fcn.00438084
add esp, 4
push 0x466f8c
mov dword [0x466f88], ebx
call fcn.0042f6be
mov ebx, dword [ebp - 8]
add esp, 4
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcessTimes]
test eax, eax
je 0x42daa6
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov eax, dword [0x466f88]
mov esi, dword [ebp - 0x10]
add esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
adc ecx, dword [ebp - 0x14]
cdq
push edx
push eax
push ecx
push esi
call fcn.0042fd70
mov ecx, dword [0x466f78]
mov esi, eax
mov edi, edx
mov dword [ebp - 4], esi
mov dword [ebp - 8], edi
cmp ecx, dword [ebx + 4]
jle 0x42d9da
push 0x466f78
call fcn.0042f70f
add esp, 4
cmp dword [0x466f78], 0xffffffff
jne 0x42d9da
push 0x466f78
mov dword [0x466f70], esi
mov dword [0x466f74], edi
call fcn.0042f6be
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x466f68]
mov esi, eax
xor eax, eax
cmp ecx, dword [ebx + 4]
jle 0x42da25
push 0x466f68
call fcn.0042f70f
add esp, 4
cmp dword [0x466f68], 0xffffffff
jne 0x42da23
xor ebx, ebx
mov dword [0x466f80], esi
push 0x466f68
mov dword [0x466f84], ebx
call fcn.0042f6be
add esp, 4
xor eax, eax
mov ebx, dword [0x466f80]
mov edi, dword [0x466f84]
cmp esi, ebx
jne 0x42da39
cmp eax, edi
je 0x42daa6
mov ecx, dword [ebp - 4]
sub ecx, dword [0x466f70]
mov edx, dword [ebp - 8]
sbb edx, dword [0x466f74]
call fcn.0044fab0
mulsd xmm0, qword [0x4611e0]
mov ecx, esi
sub ecx, ebx
mov ebx, 0
mov edx, ebx
sbb edx, edi
divsd xmm0, qword [0x4611e8]
movsd qword [ebp - 0x18], xmm0
call fcn.0044fab0
movsd xmm1, qword [ebp - 0x18]
divsd xmm1, xmm0
mov eax, dword [ebp - 4]
mov dword [0x466f70], eax
mov eax, dword [ebp - 8]
mov dword [0x466f80], esi
mov dword [0x466f84], ebx
mov dword [0x466f74], eax
movaps xmm0, xmm1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xorps xmm0, xmm0
pop ebx
mov esp, ebp
pop ebp
ret