Function at 0x4122fc
Capabilities:
Get system information on windows

Disassembly:
push 0x6c
mov eax, 0x5134ac
call fcn.004ab4a6
lea eax, [ebp - 0x78]
push eax
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push 0x51a1b4
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x412342
push str.GetNativeSystemInfo
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x41233b
lea ecx, [ebp - 0x78]
push ecx
call eax
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp word [ebp - 0x78], 6
je 0x4127d9
mov ecx, esi
call fcn.0041203c
test eax, eax
je 0x4127d9
push 0x68
call fcn.00498a73
pop ecx
mov dword [esi + 0xc], eax
call fcn.00405b41
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.00488ce9
test eax, eax
je 0x4127d9
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x52
jne 0x4127d9
cmp byte [eax + 1], 0x53
jne 0x4127d9
cmp byte [eax + 2], 0x44
jne 0x4127d9
cmp byte [eax + 3], 0x54
jne 0x4127d9
mov eax, dword [eax + 4]
push 0x24
pop ecx
sub eax, ecx
shr eax, 2
test eax, eax
jle 0x4127d4
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x3c], eax
call fcn.00405b41
mov edx, dword [ebp - 0x38]
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.00488ce9
test eax, eax
je 0x4127c7
mov eax, dword [ebp - 0x30]
cmp eax, 0x1000
ja 0x4127c7
test eax, eax
je 0x4127c7
add eax, 4
push eax
call fcn.00498aad
mov edi, eax
pop ecx
mov dword [ebp - 0x40], edi
call fcn.00405b41
mov ecx, dword [esi + 0xc]
mov edx, dword [ebp - 0x38]
mov eax, dword [eax + 0x18]
push edi
push dword [ebp - 0x30]
push dword [edx + ecx]
mov ecx, eax
push 0
call fcn.00488ce9
test eax, eax
je 0x4127c0
push 4
pop ebx
push ebx
lea eax, [ebp - 0x34]
push str.APIC
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.BOOT
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.DBGP
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.DSDT
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.ECDT
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.ETDT
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.FACP
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
jne 0x41256e
cmp byte [ebp - 0x2c], 3
jb 0x412509
cmp dword [ebp - 0x30], 0x12c
jae 0x4127c0
xor ebx, ebx
cmp dword [edi + 0x4c], ebx
jbe 0x41255d
test dword [esi + 0x38], 0x4000
je 0x41255d
mov eax, dword [esi + 0x30]
cmp eax, 0x8014e67a
je 0x41255d
cmp eax, 0xa758b28a
je 0x41255d
push 0x28
call fcn.00498a73
pop ecx
mov dword [ebp - 0x40], eax
mov dword [ebp - 4], ebx
cmp eax, ebx
je 0x412548
push dword [edi + 0x4c]
mov ecx, eax
call fcn.004278fb
mov ebx, eax
or dword [ebp - 4], 0xffffffff
mov dword [esi + 0x18], ebx
call fcn.00405b41
mov ecx, dword [eax + 0x2c]
push ebx
call fcn.00404e30
mov eax, dword [edi + 0x24]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x38]
mov dword [esi + 0x14], eax
jmp 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.FACS
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push 3
lea eax, [ebp - 0x34]
push 0x51bf98
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.PSDT
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.SBST
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.SLIT
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.SPCR
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.SRAT
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.SSDT
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.SPMI
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.XSDT
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.MCFG
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
je 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push str.TAMG
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
jne 0x4126d8
push str.ESDT
push dword [ebp - 0x30]
mov ecx, esi
push edi
call fcn.00412062
mov ebx, eax
test ebx, ebx
je 0x4127c0
push 0x30
call fcn.00498a73
push 0x30
push ebx
push eax
mov dword [esi + 0x2c], eax
call fcn.004aa230
add esp, 0x10
jmp 0x4127c0
push ebx
lea eax, [ebp - 0x34]
push 0x51bf38
push eax
call fcn.004ab680
add esp, 0xc
test eax, eax
jne 0x4127c0
mov ebx, dword [edi + 0x2c]
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x50], eax
test ebx, ebx
jbe 0x4127c0
test byte [edi + 0x28], 1
jne 0x4127c0
push 0x2000000
push ebx
push eax
call fcn.00405b41
mov ecx, eax
call fcn.0040513c
mov edi, eax
test edi, edi
jne 0x412761
push 0x14
call fcn.00498a73
pop ecx
mov dword [ebp - 0x44], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x41274d
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x50]
mov ecx, eax
call fcn.00411cf7
mov edi, eax
jmp 0x41274f
xor edi, edi
or dword [ebp - 4], 0xffffffff
call fcn.00405b41
mov ecx, dword [eax + 0x1c]
push edi
call fcn.00406e0f
push 0x28
call fcn.00498a73
pop ecx
mov dword [ebp - 0x44], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x412783
push edi
mov ecx, eax
call fcn.00427741
mov ebx, eax
jmp 0x412785
xor ebx, ebx
mov eax, dword [edi]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4c]
push ecx
push 0
mov ecx, edi
call dword [eax + 0x18]
mov eax, dword [edi]
lea ecx, [ebp - 0x48]
push ecx
push 4
mov ecx, edi
call dword [eax + 0x18]
fild dword [ebp - 0x48]
fdivr qword [0x51bf30]
fstp qword [ebx + 0x10]
call fcn.00405b41
mov ecx, dword [eax + 0x2c]
push ebx
call fcn.00404e30
mov edi, dword [ebp - 0x40]
push edi
call fcn.00498aa2
pop ecx
add dword [ebp - 0x38], 4
dec dword [ebp - 0x3c]
jne 0x4123ce
xor eax, eax
inc eax
jmp 0x4127db
xor eax, eax
call fcn.004ab529
ret