Function at 0x10012310
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x440
mov eax, dword [0x10019030]
xor eax, ebp
mov dword [ebp - 0x2c], eax
push str._ACPIWMI__AsWMI_Open
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x10012348
xor al, al
jmp 0x10012547
push 0
push 2
push 0
push 3
push 6
push 0
push 0
push 0xffffffffffffffff
push 0
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x10012376
cmp dword [ebp - 4], 0x80010119
jne 0x10012545
call fcn.10011fb0
movzx eax, al
test eax, eax
je 0x10012545
lea ecx, [ebp - 8]
push ecx
push 0
push 0x10
push 0x10016ea4
mov edx, dword [0x1001aec0]
mov eax, dword [edx]
mov ecx, dword [0x1001aec0]
push ecx
mov edx, dword [eax + 0x48]
call edx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jl 0x10012545
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x10]
push ecx
push 1
push 0xffffffffffffffff
mov edx, dword [ebp - 8]
mov eax, dword [edx]
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [eax + 0x10]
call edx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jl 0x10012545
xor eax, eax
mov word [ebp - 0x28], ax
xor ecx, ecx
mov dword [ebp - 0x26], ecx
mov dword [ebp - 0x22], ecx
mov dword [ebp - 0x1e], ecx
mov word [ebp - 0x1a], cx
push 0
push 0
lea edx, [ebp - 0x28]
push edx
push 0
push str.InstanceName
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jl 0x10012533
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x234], ecx
lea edx, [ebp - 0x230]
mov dword [ebp - 0x440], edx
mov eax, dword [ebp - 0x234]
mov cx, word [eax]
mov word [ebp - 0x43c], cx
movzx edx, word [ebp - 0x43c]
mov eax, dword [ebp - 0x234]
add eax, 2
mov dword [ebp - 0x234], eax
test edx, edx
je 0x100124ac
mov ecx, dword [ebp - 0x440]
mov dx, word [ebp - 0x43c]
mov word [ecx], dx
mov eax, dword [ebp - 0x440]
add eax, 2
mov dword [ebp - 0x440], eax
movzx ecx, word [ebp - 0x43c]
cmp ecx, 0x5c
jne 0x100124aa
mov edx, dword [ebp - 0x440]
mov ax, word [ebp - 0x43c]
mov word [edx], ax
mov ecx, dword [ebp - 0x440]
add ecx, 2
mov dword [ebp - 0x440], ecx
jmp 0x10012436
xor edx, edx
mov eax, dword [ebp - 0x440]
mov word [eax], dx
lea ecx, [ebp - 0x230]
push ecx
push 0x10016ee0
push str._ws.InstanceName__s_
lea edx, [ebp - 0x438]
push edx
call fcn.10001e60
add esp, 0x10
lea eax, [ebp - 0x438]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [0x1001aec8], eax
lea ecx, [ebp - 0x28]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [eax + 8]
call edx
push 0
push 0x1001aec4
push 0
push 0
push str.ASUSManagement
mov eax, dword [0x1001aec0]
mov ecx, dword [eax]
mov edx, dword [0x1001aec0]
push edx
mov eax, dword [ecx + 0x18]
call eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jl 0x10012531
mov al, 1
jmp 0x10012547
jmp 0x10012545
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [edx + 8]
call ecx
xor al, al
jmp 0x10012547
xor al, al
mov ecx, dword [ebp - 0x2c]
xor ecx, ebp
call fcn.100021ac
mov esp, ebp
pop ebp
ret