Function at 0x4137c9
Capabilities:
Get system information on windows

Disassembly:
push 0x74
mov eax, 0x711390
call fcn.00648b50
mov esi, ecx
call fcn.00404d14
mov eax, dword [eax + 0x18]
test eax, eax
je 0x413d54
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push 0x71efa0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x41381f
push str.GetNativeSystemInfo
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x413818
lea ecx, [ebp - 0x80]
push ecx
call eax
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp word [ebp - 0x80], 6
je 0x413d54
mov ecx, esi
call fcn.004134f1
test eax, eax
je 0x413d54
push 0x68
call fcn.006484ac
pop ecx
mov dword [esi + 0xc], eax
call fcn.00404d14
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.0043c5b4
test eax, eax
je 0x413d54
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x52
jne 0x413d54
cmp byte [eax + 1], 0x53
jne 0x413d54
cmp byte [eax + 2], 0x44
jne 0x413d54
cmp byte [eax + 3], 0x54
jne 0x413d54
mov eax, dword [eax + 4]
push 0x24
pop ecx
sub eax, ecx
shr eax, 2
test eax, eax
jle 0x413d4f
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x44], eax
call fcn.00404d14
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.0043c5b4
test eax, eax
je 0x413d42
mov eax, dword [ebp - 0x30]
cmp eax, 0x1000
ja 0x413d42
test eax, eax
je 0x413d42
add eax, 4
push eax
call fcn.006484ac
mov ebx, eax
pop ecx
mov dword [ebp - 0x40], ebx
call fcn.00404d14
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.0043c5b4
test eax, eax
je 0x413d3b
push 4
lea eax, [ebp - 0x34]
push str.APIC
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push 4
lea eax, [ebp - 0x34]
push str.BOOT
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push 4
lea eax, [ebp - 0x34]
push str.DBGP
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push 4
lea eax, [ebp - 0x34]
push str.DSDT
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push 4
lea eax, [ebp - 0x34]
push str.ECDT
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push 4
lea eax, [ebp - 0x34]
push str.ETDT
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push 4
lea eax, [ebp - 0x34]
push str.ASF_
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push 4
lea eax, [ebp - 0x34]
push str.FACP
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
jne 0x413a9c
cmp byte [ebp - 0x2c], 3
jb 0x413a0a
cmp dword [ebp - 0x30], 0x12c
jae 0x413d3b
cmp dword [ebx + 0x4c], edi
jbe 0x413a8b
test dword [esi + 0x38], 0x4000
je 0x413a8b
mov eax, dword [esi + 0x30]
cmp eax, 0x8014e67a
je 0x413a8b
cmp eax, 0xa758b28a
je 0x413a8b
cmp eax, 0x28ba654
je 0x413a8b
push 0x28
call fcn.006484ac
pop ecx
mov dword [ebp - 0x40], eax
mov dword [ebp - 4], edi
cmp eax, edi
je 0x413a4e
push dword [ebx + 0x4c]
mov ecx, eax
call fcn.0044dea1
jmp 0x413a50
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 [0x78d3e0]
fnstsw ax
test ah, 0x41
jne 0x413a7e
mov edi, dword [esi + 0x18]
call fcn.00404d14
mov ecx, dword [eax + 0x2c]
push edi
call fcn.00403db8
jmp 0x413a8b
mov ecx, dword [esi + 0x18]
cmp ecx, edi
je 0x413a8b
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 0x413d3b
push 4
pop edi
push edi
lea eax, [ebp - 0x34]
push str.FACS
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push 3
lea eax, [ebp - 0x34]
push 0x721020
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push edi
lea eax, [ebp - 0x34]
push str.PSDT
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push edi
lea eax, [ebp - 0x34]
push str.SBST
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push edi
lea eax, [ebp - 0x34]
push str.SLIT
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push edi
lea eax, [ebp - 0x34]
push str.SPCR
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push edi
lea eax, [ebp - 0x34]
push str.SRAT
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push edi
lea eax, [ebp - 0x34]
push str.SSDT
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push edi
lea eax, [ebp - 0x34]
push str.SPMI
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push edi
lea eax, [ebp - 0x34]
push str.XSDT
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push edi
lea eax, [ebp - 0x34]
push str.MCFG
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
je 0x413d3b
push edi
lea eax, [ebp - 0x34]
push str.TAMG
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
jne 0x413c1b
push str.ESDT
push dword [ebp - 0x30]
mov ecx, esi
push ebx
call fcn.00413517
mov edi, eax
test edi, edi
je 0x413d3b
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x413c00
push eax
call fcn.00647fb5
and dword [esi + 0x2c], 0
pop ecx
push 0x30
call fcn.006484ac
push 0x30
push edi
push eax
mov dword [esi + 0x2c], eax
call fcn.0066eca0
add esp, 0x10
jmp 0x413d3b
push edi
lea eax, [ebp - 0x34]
push str.HPET
push eax
call fcn.0068b710
add esp, 0xc
test eax, eax
jne 0x413d3b
mov edi, dword [ebx + 0x2c]
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0x48], eax
test edi, edi
jbe 0x413d3b
test byte [ebx + 0x28], 1
jne 0x413d3b
push 0x2000000
push edi
push eax
call fcn.00404d14
mov ecx, eax
call fcn.0040410d
mov ebx, eax
test ebx, ebx
jne 0x413caa
push 0x14
call fcn.006484ac
pop ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x413c91
push 0xffffffffffffffff
push edi
push dword [ebp - 0x48]
mov ecx, eax
call fcn.0044b4a1
mov dword [ebp - 0x38], eax
jmp 0x413c95
and dword [ebp - 0x38], 0
or dword [ebp - 4], 0xffffffff
mov ebx, dword [ebp - 0x38]
call fcn.00404d14
mov ecx, dword [eax + 0x1c]
push ebx
call fcn.00404e7f
call fcn.00404d14
cmp dword [eax + 0x18], 0
je 0x413cd4
add edi, 0xf0
call fcn.00404d14
mov eax, dword [eax + 0x18]
lea ecx, [ebp - 0x5c]
push ecx
push 0x10
push dword [ebp - 0x48]
mov ecx, eax
push edi
call fcn.0043c6f9
mov eax, dword [ebx]
lea ecx, [ebp - 0x54]
push ecx
push 0
mov ecx, ebx
call dword [eax + 0x18]
test eax, eax
je 0x413d38
mov eax, dword [ebx]
lea ecx, [ebp - 0x50]
push ecx
push 4
mov ecx, ebx
call dword [eax + 0x18]
test eax, eax
je 0x413d38
push 0x28
call fcn.006484ac
pop ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x413d18
push ebx
mov ecx, eax
call fcn.0044dd00
mov edi, eax
jmp 0x413d1a
xor edi, edi
fild dword [ebp - 0x50]
or dword [ebp - 4], 0xffffffff
fdivr qword [0x78d838]
fstp qword [edi + 0x10]
call fcn.00404d14
mov ecx, dword [eax + 0x2c]
push edi
call fcn.00403db8
mov ebx, dword [ebp - 0x40]
push ebx
call fcn.00647fb5
pop ecx
add dword [ebp - 0x3c], 4
dec dword [ebp - 0x44]
jne 0x4138ab
xor eax, eax
inc eax
jmp 0x413d56
xor eax, eax
call fcn.00648afa
ret