Function at 0x437880
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4a0a20
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x4d6720]
xor eax, esp
mov dword [esp + 0x74], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4d6720]
xor eax, esp
push eax
lea eax, [esp + 0x8c]
mov dword fs:[0], eax
mov esi, dword [esp + 0x9c]
xor ebp, ebp
mov dword [esp + 0x94], ebp
mov dword [esp + 0x38], esi
mov dword [esp + 0x30], ebp
call fcn.00468b49
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x4378e7
push 0x80004005
call fcn.00401210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push 0x4b
lea ecx, [esp + 0x41]
push ebp
mov edi, 1
push ecx
mov dword [esp + 0xa0], ebp
mov dword [esp + 0x3c], edi
mov byte [esp + 0x48], 0
call fcn.00482db0
add esp, 0xc
lea edx, [esp + 0x3c]
push edx
call sub.POWRPROF.dll_GetPwrCapabilities
test al, al
je 0x437f59
call fcn.00468b49
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x437946
push 0x80004005
call fcn.00401210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov dword [esp + 0x94], edi
call fcn.00468b49
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x437977
push 0x80004005
call fcn.00401210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x9c], 2
call fcn.00436130
add esp, 8
test eax, eax
jne 0x4379b7
lea eax, [esp + 0x1c]
push str._Error_
push eax
call fcn.00404580
add esp, 8
mov ecx, dword [esp + 0x1c]
push ecx
push str.MANUFACTURER:__s_n
push esi
call fcn.004191f0
add esp, 0xc
lea ecx, [esp + 0x20]
call fcn.00401ce0
mov ecx, eax
call fcn.00401810
mov eax, dword [esp + 0x20]
cmp dword [eax - 0xc], ebp
je 0x4379f2
push eax
push str.OEM:__s_n
push esi
call fcn.004191f0
add esp, 0xc
cmp dword [esp + 0xa0], ebp
je 0x437a8d
call fcn.00468b49
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x437a19
push 0x80004005
call fcn.00401210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x14]
push ecx
mov byte [esp + 0x98], 3
call fcn.00406ee0
add esp, 4
test eax, eax
je 0x437a57
mov edx, dword [esp + 0x14]
push edx
push 0x4b1064
push esi
call fcn.004191f0
add esp, 0xc
jmp 0x437a65
push str._ERROR:_Could_not_determine_OS__n
push esi
call fcn.004191f0
add esp, 8
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x94], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437a8d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str._nPOWER_CAPABILITIES:_n
push esi
call fcn.004191f0
xor ebx, ebx
add esp, 8
cmp byte [esp + 0x42], bl
je 0x437aab
cmp byte [esp + 0x44], bl
je 0x437aab
mov ebx, edi
cmp byte [esp + 0x5a], 0
mov eax, str.Has_one_or_more_batteries.
jne 0x437abc
mov eax, str.Does_NOT_run_on_batteries.
push eax
push str.___s
push esi
call fcn.004191f0
add esp, 0xc
cmp byte [esp + 0x5a], 0
je 0x437b3f
xor eax, eax
mov dword [esp + 0x25], eax
mov dword [esp + 0x29], eax
mov word [esp + 0x2d], ax
mov byte [esp + 0x2f], al
mov eax, dword [0x4d88fc]
mov byte [esp + 0x24], 0
cmp eax, ebp
je 0x437b3f
lea ecx, [esp + 0x24]
push ecx
call eax
test eax, eax
je 0x437b3f
movzx ecx, byte [esp + 0x24]
mov eax, ecx
sub eax, ebp
je 0x437b33
sub eax, edi
je 0x437b2c
sub eax, 0xfe
je 0x437b25
push ecx
push str._Current_power_status___d_
push esi
call fcn.004191f0
add esp, 0xc
jmp 0x437b3f
push str._Current_power_status_unknown.
jmp 0x437b38
push str._Currently_on_AC_power.
jmp 0x437b38
push str._Currently_on_DC_power.
mov ecx, esi
call fcn.00401ef0
push edi
push 0x4a80b8
mov ecx, esi
call fcn.00401990
cmp byte [esp + 0x50], 0
mov eax, 0x4b0e94
jne 0x437b5d
mov eax, str.Is_NOT
push eax
push str.___s_Always_On_Always_Connected__AOAC_._n
push esi
call fcn.004191f0
add esp, 0xc
cmp byte [esp + 0x50], 0
mov eax, 0x4b0e94
jne 0x437b7d
mov eax, str.is_NOT
push eax
push str.__Connected_Standby__s_supported._n
push esi
call fcn.004191f0
add esp, 0xc
cmp byte [esp + 0x3f], 0
mov eax, 0x4b0e94
jne 0x437b9d
mov eax, str.is_NOT
push eax
push str.__Sleep_state__S1___s_supported._n
push esi
call fcn.004191f0
add esp, 0xc
cmp byte [esp + 0x40], 0
mov eax, 0x4b0e94
jne 0x437bbd
mov eax, str.is_NOT
push eax
push str.__Sleep_state__S2___s_supported._n
push esi
call fcn.004191f0
add esp, 0xc
cmp byte [esp + 0x41], 0
mov eax, 0x4b0e94
jne 0x437bdd
mov eax, str.is_NOT
push eax
push str.__Sleep_state__S3___s_supported._n
push esi
call fcn.004191f0
add esp, 0xc
cmp byte [esp + 0x42], 0
mov eax, 0x4b0e94
jne 0x437bfd
mov eax, str.is_NOT
push eax
push str.__Hibernation__S4___s_supported.
push esi
call fcn.004191f0
add esp, 0xc
cmp byte [esp + 0x42], 0
je 0x437c32
mov eax, 0x4a7664
cmp ebx, ebp
jne 0x437c21
mov eax, str.NOT
push eax
push str._Hibernation_is__senabled._n
push esi
call fcn.004191f0
add esp, 0xc
jmp 0x437c40
push 0x4a80b8
push esi
call fcn.004191f0
add esp, 8
cmp byte [esp + 0x43], 0
mov eax, 0x4b0e94
jne 0x437c51
mov eax, str.is_NOT
push eax
push str.__Soft_off_state__S5___s_supported._n
push esi
call fcn.004191f0
add esp, 0xc
cmp byte [esp + 0x4d], 0
mov eax, 0x4b0e94
jne 0x437c71
mov eax, str.is_NOT
push eax
push str.__Hybrid_sleep_state__s_supported._n
push esi
call fcn.004191f0
add esp, 0xc
cmp byte [esp + 0x45], 0
mov eax, 0x4b0bd8
jne 0x437c91
mov eax, str.are_NOT
push eax
push str.__Wake_capabilities__s_supported._n
push esi
call fcn.004191f0
mov edx, dword [esp + 0x88]
push edx
lea eax, [esp + 0x24]
push eax
call fcn.00427eb0
mov eax, dword [eax]
push eax
push str.__Lowest_sleep_state_that_supports_Real_Time_Clock_wake:__s._n
push esi
mov byte [esp + 0xb4], 4
call fcn.004191f0
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
add esp, 0x20
mov byte [esp + 0x94], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437cf0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x74]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.00427eb0
mov eax, dword [eax]
push eax
push str.__AcOnLineWake:__s_n
push esi
mov byte [esp + 0xa8], 5
call fcn.004191f0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x14
mov byte [esp + 0x94], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437d40
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x78]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.00427eb0
mov eax, dword [eax]
push eax
push str.__SoftLidWake:__s_n
push esi
mov byte [esp + 0xa8], 6
call fcn.004191f0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x14
mov byte [esp + 0x94], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437d90
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x80]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.00427eb0
mov eax, dword [eax]
push eax
push str.__MinDeviceWakeState:__s_n
push esi
mov byte [esp + 0xa8], 7
call fcn.004191f0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x14
mov byte [esp + 0x94], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437de3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0xa0], ebp
je 0x437e05
push str._nFor_more_details_check:_n
push esi
call fcn.004191f0
push str.http:__msdn.microsoft.com_en_us_library_windows_desktop_aa373229_vvs.85_.aspx_n
push esi
call fcn.004191f0
add esp, 0x10
push 0x4a80b8
push esi
call fcn.004191f0
add esp, 8
call fcn.00468b49
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x437e2d
push 0x80004005
call fcn.00401210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
push ebp
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
mov bl, 8
push edx
mov byte [esp + 0xa0], bl
mov dword [esp + 0x20], ebp
call fcn.004376e0
add esp, 0xc
cmp eax, ebp
jge 0x437ecf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
push ebp
lea eax, [esp + 0x38]
push edi
push eax
call fcn.004285d0
mov eax, dword [eax]
mov ecx, dword [esp + 0x20]
push eax
push edi
push ecx
lea edx, [esp + 0x30]
push str._n_ERROR:_Parsing_Task_Scheduler_tasks_spec_error_d:___d___s__n
push edx
mov byte [esp + 0xb4], 9
call fcn.004191f0
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
add esp, 0x20
mov byte [esp + 0x94], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437ebf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x18]
call fcn.00401ce0
mov ecx, eax
call fcn.00401810
mov eax, dword [esp + 0x18]
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, esi
call fcn.00401990
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x94], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437f07
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x94], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437f2f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x94], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437f6e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x437f6e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ERROR:__d_GetPwrCapabilities_n
push esi
call fcn.004191f0
add esp, 0xc
mov ecx, esi
call fcn.00401ce0
mov ecx, eax
call fcn.00401810
mov eax, esi
mov ecx, dword [esp + 0x8c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.00482b5f
add esp, 0x84
ret