Function at 0x10040980
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100ae5a1
mov eax, dword fs:[0]
push eax
sub esp, 0x194
mov eax, dword [0x100de514]
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 ebx, ecx
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.PowerGetActiveScheme
push dword [ebx + 0x14]
call esi
push str.PowerReadFriendlyName
push dword [ebx + 0x14]
mov dword [ebx + 0xcc], eax
call esi
push str.PowerSetActiveScheme
push dword [ebx + 0x14]
mov dword [ebx + 0xd0], eax
call esi
push str.PowerEnumerate
push dword [ebx + 0x14]
mov dword [ebx + 0xd4], eax
call esi
push str.PowerDuplicateScheme
push dword [ebx + 0x14]
mov dword [ebx + 0xd8], eax
call esi
push str.PowerWriteFriendlyName
push dword [ebx + 0x14]
mov dword [ebx + 0xdc], eax
call esi
push str.PowerWriteDescription
push dword [ebx + 0x14]
mov dword [ebx + 0xe0], eax
call esi
push str.PowerWriteACValueIndex
push dword [ebx + 0x14]
mov dword [ebx + 0xe4], eax
call esi
push str.PowerWriteDCValueIndex
push dword [ebx + 0x14]
mov dword [ebx + 0xe8], eax
call esi
push str.PowerDeleteScheme
push dword [ebx + 0x14]
mov dword [ebx + 0xec], eax
call esi
cmp dword [ebx + 0xcc], 0
mov dword [ebx + 0xf0], eax
je 0x10040b4b
cmp dword [ebx + 0xd0], 0
je 0x10040b4b
cmp dword [ebx + 0xd4], 0
je 0x10040b4b
call fcn.100607f0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x10040b3a
push 0x85
push str.d:jenkins.jenkinsworkspacemaster_lu_benchmark_suite_benchmark_suite_aimarkbenchmarksuite_benchmarksuitehelperpowrcfgwrapper.cpp
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], al
call fcn.1000eb90
push 3
push 0x100b5ad0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.1000eb90
mov byte [ebp - 4], 1
call fcn.100607f0
mov edi, eax
lea ecx, [ebp - 0x108]
push 0xa6
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.100087f0
mov esi, eax
push str._power_use_vista_interface
push esi
mov byte [ebp - 4], 2
call fcn.10006c50
mov edx, dword [edi]
add esp, 8
mov ecx, edi
push esi
call dword [edx + 0x1c]
lea ecx, [ebp - 0x108]
call fcn.10009b90
lea ecx, [ebp - 0x28]
call fcn.10009280
lea ecx, [ebp - 0x40]
call fcn.10009280
mov dword [ebx + 4], 0
mov eax, 1
jmp 0x10040d47
push str.EnumPwrSchemes
push dword [ebx + 0x14]
call esi
push str.SetActivePwrScheme
push dword [ebx + 0x14]
mov dword [ebx + 0xf4], eax
call esi
push str.GetActivePwrScheme
push dword [ebx + 0x14]
mov dword [ebx + 0xf8], eax
call esi
push str.ReadPwrScheme
push dword [ebx + 0x14]
mov dword [ebx + 0xfc], eax
call esi
cmp dword [ebx + 0xf4], 0
mov dword [ebx + 0x100], eax
je 0x10040c88
cmp dword [ebx + 0xf8], 0
je 0x10040c88
cmp dword [ebx + 0xfc], 0
je 0x10040c88
test eax, eax
je 0x10040c88
call fcn.100607f0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x10040c77
push 0x85
push str.d:jenkins.jenkinsworkspacemaster_lu_benchmark_suite_benchmark_suite_aimarkbenchmarksuite_benchmarksuitehelperpowrcfgwrapper.cpp
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], al
call fcn.1000eb90
push 3
push 0x100b5ad0
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 3
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.1000eb90
mov byte [ebp - 4], 4
call fcn.100607f0
mov edi, eax
lea ecx, [ebp - 0x108]
push 0xb2
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.100087f0
mov esi, eax
push str._power_use_xp_interface
push esi
mov byte [ebp - 4], 5
call fcn.10006c50
mov edx, dword [edi]
add esp, 8
mov ecx, edi
push esi
call dword [edx + 0x1c]
lea ecx, [ebp - 0x108]
call fcn.10009b90
lea ecx, [ebp - 0x40]
call fcn.10009280
lea ecx, [ebp - 0x28]
call fcn.10009280
mov dword [ebx + 4], 1
mov eax, 1
jmp 0x10040d47
call fcn.100607f0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x10040d45
push 0x85
push str.d:jenkins.jenkinsworkspacemaster_lu_benchmark_suite_benchmark_suite_aimarkbenchmarksuite_benchmarksuitehelperpowrcfgwrapper.cpp
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], al
call fcn.1000eb90
push 3
push 0x100b5ad0
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], 6
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
call fcn.1000eb90
mov byte [ebp - 4], 7
call fcn.100607f0
mov edi, eax
lea ecx, [ebp - 0x1a0]
push 0xb7
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.100087f0
mov esi, eax
push str._power_get_interface_from_PowrProf.dll_fail
push esi
mov byte [ebp - 4], 8
call fcn.10006c50
mov edx, dword [edi]
add esp, 8
mov ecx, edi
push esi
call dword [edx + 0x1c]
lea ecx, [ebp - 0x1a0]
call fcn.10009b90
lea ecx, [ebp - 0x58]
call fcn.10009280
lea ecx, [ebp - 0x70]
call fcn.10009280
xor eax, eax
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.1007590b
mov esp, ebp
pop ebp
ret