Function at 0x401170
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x438
mov eax, dword [0x420008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push str._ACPIWMI__AsWMI_Open
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 2
push 0
push 0
xor bl, bl
push 0x419460
mov byte [ebp - 0x435], bl
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4013c5
push edi
xor edi, edi
mov dword [ebp - 0x434], 0x1c
xor eax, eax
mov ebx, 1
mov dword [ebp - 0x418], eax
nop
lea eax, [ebp - 0x434]
push eax
push edi
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x401312
push 0
push 0x208
lea eax, [ebp - 0x414]
push eax
push 0
push 0x16
lea eax, [ebp - 0x434]
push eax
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyW]
test eax, eax
je 0x40124c
mov ecx, str.ACPI
lea eax, [ebp - 0x414]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40123c
test dx, dx
je 0x401238
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40123c
add eax, 4
add ecx, 4
test dx, dx
jne 0x401216
xor eax, eax
jmp 0x401241
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40124c
mov eax, 1
jmp 0x40124e
xor eax, eax
test eax, eax
je 0x4012fd
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0
push 0x104
push eax
lea eax, [ebp - 0x434]
push eax
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstanceIdW]
test eax, eax
je 0x4012fd
lea eax, [ebp - 0x20c]
push 0x104
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsupr_s]
lea eax, [ebp - 0x20c]
push str.ACPIATK0100
push eax
call dword [sym.imp.VCRUNTIME140.dll_wcsstr]
add esp, 0x10
test eax, eax
jne 0x401308
mov ecx, str.ACPIPNP0C14ATK
lea eax, [ebp - 0x20c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4012e8
test dx, dx
je 0x4012e4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4012e8
add eax, 4
add ecx, 4
test dx, dx
jne 0x4012c2
xor eax, eax
jmp 0x4012ed
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4012fd
mov dword [ebp - 0x418], 2
xor ebx, ebx
inc edi
test ebx, ebx
jne 0x4011d0
jmp 0x401312
mov dword [ebp - 0x418], 1
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
cmp dword [ebp - 0x418], 2
pop edi
jne 0x4013af
push str.ACPIWMI___Has_Notebook_WMI
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push str.IsWow64Process
push str.kernel32
mov dword [ebp - 0x418], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x401369
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
mov eax, dword [ebp - 0x418]
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
push str..ATKACPI
mov dword [0x420d28], eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
pop esi
mov dword [0x420d24], eax
mov al, 1
mov dword [0x420cf4], 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004168de
mov esp, ebp
pop ebp
ret
mov al, byte [ebp - 0x435]
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004168de
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov al, bl
pop esi
xor ecx, ebp
pop ebx
call fcn.004168de
mov esp, ebp
pop ebp
ret