Function at 0x107d000
Capabilities:
Create process on windows
Get common file path
Shutdown system

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2b0
mov eax, dword [0x10a4ce0]
xor eax, ebp
mov dword [ebp - 4], eax
call fcn.0107f410
movzx eax, al
test eax, eax
je 0x107d201
lea ecx, [ebp - 0x2a8]
push ecx
push 0x28
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
jne 0x107d04c
mov dword [0x10b31a8], 0x90
jmp 0x107d274
lea edx, [ebp - 0x2b0]
push edx
push str.SeShutdownPrivilege
push 0
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueA]
test eax, eax
jne 0x107d073
mov dword [0x10b31a8], 0x90
jmp 0x107d274
mov dword [ebp - 0x29c], 1
mov eax, 0xc
imul ecx, eax, 0
mov edx, dword [ebp - 0x2b0]
mov dword [ebp + ecx - 0x298], edx
mov eax, dword [ebp - 0x2ac]
mov dword [ebp + ecx - 0x294], eax
mov ecx, 0xc
imul edx, ecx, 0
mov dword [ebp + edx - 0x290], 2
push 0
push 0
push 0x10
lea eax, [ebp - 0x29c]
push eax
push 0
mov ecx, dword [ebp - 0x2a8]
push ecx
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
push str.WARNING_:_System_must_shutdown_to_have_the_changes_take_effect__Starting_Shutdown_
call dword [0x10ba828]
add esp, 4
push 0
push 5
call dword [sym.imp.USER32.dll_ExitWindowsEx]
mov edx, dword [ebp - 0x2a8]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.0107d420
movzx eax, al
test eax, eax
je 0x107d1ff
push 0x104
lea ecx, [ebp - 0x28c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea edx, [ebp - 0x28c]
push edx
call fcn.01026be0
add esp, 4
movsx eax, byte [ebp + eax - 0x28d]
cmp eax, 0x5c
je 0x107d145
push 0x109b0f8
lea ecx, [ebp - 0x28c]
push ecx
call fcn.010718d0
add esp, 8
push str.NTDLL.DLL
lea edx, [ebp - 0x28c]
push edx
call fcn.010718d0
add esp, 8
lea eax, [ebp - 0x28c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x2a0], eax
cmp dword [ebp - 0x2a0], 0
je 0x107d1d1
push str.NtShutdownSystem
mov ecx, dword [ebp - 0x2a0]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x2a4], eax
cmp dword [ebp - 0x2a4], 0
je 0x107d1a0
push 2
call dword [ebp - 0x2a4]
jmp 0x107d1c2
push 0x1ab
push str.e:_ami_code_flash_afu3.15.00_afu5.15.01gdkappafu_5.15.01.0075_eip642622_labelversionGdkCoreSourcePkgPlatformLibWindowsOsHook.cpp
call fcn.0107c950
add esp, 4
push eax
push str.__s__d___GetProcAddress_Fail_n
push 2
call fcn.0108d340
add esp, 0x10
mov edx, dword [ebp - 0x2a0]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x107d1ff
push 0x1b0
push str.e:_ami_code_flash_afu3.15.00_afu5.15.01gdkappafu_5.15.01.0075_eip642622_labelversionGdkCoreSourcePkgPlatformLibWindowsOsHook.cpp
call fcn.0107c950
add esp, 4
push eax
push str.__s__d___LoadLibrary_Fail_n
push 2
call fcn.0108d340
add esp, 0x10
mov dword [0x10b31a8], 0x90
jmp 0x107d274
jmp 0x107d274
push 0x104
lea eax, [ebp - 0x148]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea ecx, [ebp - 0x148]
push ecx
call fcn.01026be0
add esp, 4
movsx edx, byte [ebp + eax - 0x149]
cmp edx, 0x5c
je 0x107d243
push 0x109b0f8
lea eax, [ebp - 0x148]
push eax
call fcn.010718d0
add esp, 8
push str.RUNDLL32.EXE
lea ecx, [ebp - 0x148]
push ecx
call fcn.010718d0
add esp, 8
push 0
push 0
push str.shell32.dll_SHExitWindowsEx_1
lea edx, [ebp - 0x148]
push edx
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.01026ff0
mov esp, ebp
pop ebp
ret