Function at 0x46ce12
Capabilities:
Get system information on windows

Disassembly:
push 0x74
mov eax, 0x50e8ee
call fcn.004efa4b
mov esi, ecx
call fcn.00451ca2
mov eax, dword [eax + 0x18]
test eax, eax
je 0x46d39d
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x46ce68
push str.GetNativeSystemInfo
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x46ce61
lea ecx, [ebp - 0x80]
push ecx
call eax
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp word [ebp - 0x80], 6
je 0x46d39d
mov ecx, esi
call fcn.0046cc7a
test eax, eax
je 0x46d39d
push 0x68
call fcn.004dccf9
pop ecx
mov dword [esi + 0xc], eax
call fcn.00451ca2
push dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov eax, dword [eax + 0x18]
push 0x68
push dword [ecx + 0x10]
mov ecx, eax
push 0
call fcn.0050bf33
test eax, eax
je 0x46d39d
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x52
jne 0x46d39d
cmp byte [eax + 1], 0x53
jne 0x46d39d
cmp byte [eax + 2], 0x44
jne 0x46d39d
cmp byte [eax + 3], 0x54
jne 0x46d39d
mov eax, dword [eax + 4]
push 0x24
pop ecx
sub eax, ecx
shr eax, 2
test eax, eax
jle 0x46d398
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x44], eax
call fcn.00451ca2
mov edx, dword [ebp - 0x3c]
mov eax, dword [eax + 0x18]
lea ecx, [ebp - 0x34]
push ecx
mov ecx, dword [esi + 0xc]
push 0x24
push dword [edx + ecx]
mov ecx, eax
push 0
call fcn.0050bf33
test eax, eax
je 0x46d38b
mov eax, dword [ebp - 0x30]
cmp eax, 0x1000
ja 0x46d38b
test eax, eax
je 0x46d38b
add eax, 4
push eax
call fcn.004dcd28
mov ebx, eax
pop ecx
mov dword [ebp - 0x40], ebx
call fcn.00451ca2
mov ecx, dword [esi + 0xc]
mov edx, dword [ebp - 0x3c]
mov eax, dword [eax + 0x18]
push ebx
push dword [ebp - 0x30]
xor edi, edi
push dword [edx + ecx]
mov ecx, eax
push edi
call fcn.0050bf33
test eax, eax
je 0x46d384
push 4
lea eax, [ebp - 0x34]
push str.APIC
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push 4
lea eax, [ebp - 0x34]
push str.BOOT
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push 4
lea eax, [ebp - 0x34]
push str.DBGP
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push 4
lea eax, [ebp - 0x34]
push str.DSDT
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push 4
lea eax, [ebp - 0x34]
push str.ECDT
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push 4
lea eax, [ebp - 0x34]
push str.ETDT
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push 4
lea eax, [ebp - 0x34]
push str.ASF_
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push 4
lea eax, [ebp - 0x34]
push str.FACP
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
jne 0x46d0e5
cmp byte [ebp - 0x2c], 3
jb 0x46d053
cmp dword [ebp - 0x30], 0x12c
jae 0x46d384
cmp dword [ebx + 0x4c], edi
jbe 0x46d0d4
test dword [esi + 0x38], 0x4000
je 0x46d0d4
mov eax, dword [esi + 0x30]
cmp eax, 0x8014e67a
je 0x46d0d4
cmp eax, 0xa758b28a
je 0x46d0d4
cmp eax, 0x28ba654
je 0x46d0d4
push 0x28
call fcn.004dccf9
pop ecx
mov dword [ebp - 0x40], eax
mov dword [ebp - 4], edi
cmp eax, edi
je 0x46d097
push dword [ebx + 0x4c]
mov ecx, eax
call fcn.00483ae0
jmp 0x46d099
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov dword [esi + 0x18], eax
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 8]
fcomp qword [0x544c78]
fnstsw ax
test ah, 0x41
jne 0x46d0c7
mov edi, dword [esi + 0x18]
call fcn.00451ca2
mov ecx, dword [eax + 0x2c]
push edi
call fcn.00450d3b
jmp 0x46d0d4
mov ecx, dword [esi + 0x18]
cmp ecx, edi
je 0x46d0d4
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [ebx + 0x24]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x38]
mov dword [esi + 0x14], eax
jmp 0x46d384
push 4
pop edi
push edi
lea eax, [ebp - 0x34]
push str.FACS
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push 3
lea eax, [ebp - 0x34]
push 0x51e140
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push edi
lea eax, [ebp - 0x34]
push str.PSDT
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push edi
lea eax, [ebp - 0x34]
push str.SBST
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push edi
lea eax, [ebp - 0x34]
push str.SLIT
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push edi
lea eax, [ebp - 0x34]
push str.SPCR
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push edi
lea eax, [ebp - 0x34]
push str.SRAT
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push edi
lea eax, [ebp - 0x34]
push str.SSDT
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push edi
lea eax, [ebp - 0x34]
push str.SPMI
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push edi
lea eax, [ebp - 0x34]
push str.XSDT
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push edi
lea eax, [ebp - 0x34]
push str.MCFG
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
je 0x46d384
push edi
lea eax, [ebp - 0x34]
push str.TAMG
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
jne 0x46d264
push str.ESDT
push dword [ebp - 0x30]
mov ecx, esi
push ebx
call fcn.0046cca0
mov edi, eax
test edi, edi
je 0x46d384
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x46d249
push eax
call fcn.004dcd33
and dword [esi + 0x2c], 0
pop ecx
push 0x30
call fcn.004dccf9
push 0x30
push edi
push eax
mov dword [esi + 0x2c], eax
call fcn.004efcc0
add esp, 0x10
jmp 0x46d384
push edi
lea eax, [ebp - 0x34]
push 0x51e0e0
push eax
call fcn.004f028b
add esp, 0xc
test eax, eax
jne 0x46d384
mov edi, dword [ebx + 0x2c]
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0x48], eax
test edi, edi
jbe 0x46d384
test byte [ebx + 0x28], 1
jne 0x46d384
push 0x2000000
push edi
push eax
call fcn.00451ca2
mov ecx, eax
call fcn.0045106e
mov ebx, eax
test ebx, ebx
jne 0x46d2f3
push 0x14
call fcn.004dccf9
pop ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x46d2da
push 0xffffffffffffffff
push edi
push dword [ebp - 0x48]
mov ecx, eax
call fcn.0046a04b
mov dword [ebp - 0x38], eax
jmp 0x46d2de
and dword [ebp - 0x38], 0
or dword [ebp - 4], 0xffffffff
mov ebx, dword [ebp - 0x38]
call fcn.00451ca2
mov ecx, dword [eax + 0x1c]
push ebx
call fcn.004411dd
call fcn.00451ca2
cmp dword [eax + 0x18], 0
je 0x46d31d
add edi, 0xf0
call fcn.00451ca2
mov eax, dword [eax + 0x18]
lea ecx, [ebp - 0x5c]
push ecx
push 0x10
push dword [ebp - 0x48]
mov ecx, eax
push edi
call fcn.0050c078
mov eax, dword [ebx]
lea ecx, [ebp - 0x54]
push ecx
push 0
mov ecx, ebx
call dword [eax + 0x18]
test eax, eax
je 0x46d381
mov eax, dword [ebx]
lea ecx, [ebp - 0x50]
push ecx
push 4
mov ecx, ebx
call dword [eax + 0x18]
test eax, eax
je 0x46d381
push 0x28
call fcn.004dccf9
pop ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x46d361
push ebx
mov ecx, eax
call fcn.0048393f
mov edi, eax
jmp 0x46d363
xor edi, edi
fild dword [ebp - 0x50]
or dword [ebp - 4], 0xffffffff
fdivr qword [0x51e0d8]
fstp qword [edi + 0x10]
call fcn.00451ca2
mov ecx, dword [eax + 0x2c]
push edi
call fcn.00450d3b
mov ebx, dword [ebp - 0x40]
push ebx
call fcn.004dcd33
pop ecx
add dword [ebp - 0x3c], 4
dec dword [ebp - 0x44]
jne 0x46cef4
xor eax, eax
inc eax
jmp 0x46d39f
xor eax, eax
call fcn.004eface
ret