Function at 0x1400086b0
Capabilities:
Get common file path
Get file version info
Set current directory

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x170]
sub rsp, 0x270
mov rax, qword [0x140051020]
xor rax, rsp
mov qword [rbp + 0x160], rax
mov rdi, rdx
cmp ecx, 2
jne 0x140008ae5
call fcn.140030850
mov rcx, qword [rdi]
lea r9, [rsp + 0x40]
lea r8, [0x1400538c0]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
dec eax
cmp eax, 0x103
ja 0x140008ac3
lea r8, [0x1400538c0]
lea rcx, [0x140053ad0]
mov edx, 0x104
mov qword [rsp + 0x290], r14
call qword [sym.imp.MSVCR110.dll_wcscpy_s]
mov rax, qword [rsp + 0x40]
xor esi, esi
lea rdx, [rsp + 0x20]
lea rcx, [0x140053ad0]
mov word [rax], si
mov dword [rsp + 0x20], esi
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov r14d, eax
test eax, eax
je 0x1400087f1
mov ecx, r14d
call qword [sym.imp.MSVCR110.dll_malloc]
mov rbx, rax
test rax, rax
je 0x1400087f1
mov edx, dword [rsp + 0x20]
lea rcx, [0x140053ad0]
mov r9, rax
mov r8d, r14d
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x1400087e8
lea r9, [rsp + 0x38]
lea r8, [rsp + 0x28]
lea rdx, [0x14003b108]
mov rcx, rbx
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x38], 8
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1400087e8
mov rcx, qword [rsp + 0x28]
movzx eax, word [rcx + 0x12]
mov word [0x1400528e4], ax
movzx eax, word [rcx + 0x10]
mov word [0x1400528cc], ax
movzx eax, word [rcx + 0x16]
mov word [0x140052904], ax
movzx eax, word [rcx + 0x14]
mov word [0x1400528e0], ax
mov rcx, rbx
call qword [sym.imp.MSVCR110.dll_free]
xor ecx, ecx
xor eax, eax
mov byte [rsp + 0x34], sil
cpuid
mov dword [rsp + 0x2c], edx
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], eax
lea rdx, str.AuthenticAMD
lea rcx, [rsp + 0x28]
mov dword [rsp + 0x28], ebx
call sub.MSVCR110.dll_strcmp
mov r14, qword [rsp + 0x290]
test eax, eax
je 0x140008858
call fcn.140030600
test al, al
jne 0x140008858
mov ecx, 2
call fcn.140030440
mov edx, 4
lea r8, str.This_program_requires_an_AMD_CPU_
lea ecx, [rdx + 0x11]
call fcn.140030a90
or eax, 0xffffffff
jmp 0x140008b42
lea rdx, [0x140053ce0]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
jne 0x14000889f
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.GetCurrentDirectory_failed___d__n
lea rcx, [rsp + 0x50]
mov r8d, eax
call fcn.140008bf0
mov edx, 4
lea r8, [rsp + 0x50]
lea ecx, [rdx + 0x11]
call fcn.140030a90
jmp 0x140008b40
lea rcx, [0x1400538c0]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
jne 0x1400088bf
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.SetCurrentDirectory_failed___d__n
jmp 0x14000887b
lea r9, [0x1400538c0]
lea r8, [0x140053ce0]
lea rdx, str.PWD_changed_from___s__to___s_
lea rcx, [rsp + 0x50]
call fcn.140008bf0
mov edx, 2
lea r8, [rsp + 0x50]
lea ecx, [rdx + 0x13]
call fcn.140030a90
mov rcx, qword [rdi + 8]
lea rdx, str._install
call qword [sym.imp.MSVCR110.dll__wcsicmp]
test eax, eax
jne 0x14000890f
call fcn.140008410
jmp 0x140008b42
mov rcx, qword [rdi + 8]
lea rdx, str._uninstall
call qword [sym.imp.MSVCR110.dll__wcsicmp]
test eax, eax
jne 0x140008945
lea rcx, str.AMD_FUEL_Service
call fcn.1400085c0
lea rcx, str.AODDriver4.3
mov ebx, eax
call fcn.1400085c0
mov eax, ebx
jmp 0x140008b42
mov rcx, qword [rdi + 8]
lea rdx, [0x14003b288]
call qword [sym.imp.MSVCR110.dll__wcsicmp]
test eax, eax
jne 0x1400089ec
call fcn.1400302b0
mov ebx, eax
cmp eax, 0xfffffffd
je 0x1400089bc
cmp eax, 0xfffffffe
je 0x1400089ad
cmp eax, 0xffffffff
je 0x14000899e
test eax, eax
jne 0x1400089e5
lea rcx, str.Service_started._n
call qword [sym.imp.MSVCR110.dll_wprintf_s]
lea r8, str.Service_started_with__start
lea edx, [rbx + 2]
lea ecx, [rbx + 0x15]
call fcn.140030a90
mov eax, ebx
jmp 0x140008b42
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.OpenSCManager_failed___Error_code__d_n
jmp 0x1400089c9
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.OpenService_failed___Error_code__d_n
jmp 0x1400089c9
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.StartService_failed___Error_code__d_n
mov edx, eax
call qword [sym.imp.MSVCR110.dll_wprintf_s]
mov edx, 4
lea r8, str.OpenSCManager_failed_
lea ecx, [rdx + 0x11]
call fcn.140030a90
mov eax, ebx
jmp 0x140008b42
mov rcx, qword [rdi + 8]
lea rdx, str._stop
call qword [sym.imp.MSVCR110.dll__wcsicmp]
test eax, eax
jne 0x140008a41
call fcn.140030380
mov ebx, eax
cmp eax, 0xfffffffd
je 0x1400089bc
cmp eax, 0xfffffffe
je 0x1400089ad
cmp eax, 0xffffffff
je 0x14000899e
test eax, eax
jne 0x1400089e5
lea rcx, str.Service_stopped._n
call qword [sym.imp.MSVCR110.dll_wprintf_s]
lea r8, str.Service_stopped_with__stop
lea edx, [rbx + 2]
lea ecx, [rbx + 0x15]
call fcn.140030a90
mov eax, ebx
jmp 0x140008b42
mov rcx, qword [rdi + 8]
lea rdx, str._launchService
call qword [sym.imp.MSVCR110.dll__wcsicmp]
test eax, eax
jne 0x140008aa1
lea rcx, str.AMD_FUEL_Service
call qword [sym.imp.ADVAPI32.dll_StartServiceCtrlDispatcherW]
test eax, eax
jne 0x140008a86
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.StartServiceCtrlDispatcher_failed___Error_code__d_n
mov edx, eax
call qword [sym.imp.MSVCR110.dll_wprintf_s]
or esi, 0xffffffff
mov eax, esi
jmp 0x140008b42
mov edx, 4
lea r8, str.Service_not_started_
lea ecx, [rdx + 0x11]
call fcn.140030a90
mov eax, esi
jmp 0x140008b42
mov rcx, qword [rdi + 8]
lea rdx, str._local
call qword [sym.imp.MSVCR110.dll__wcsicmp]
test eax, eax
jne 0x140008ae5
lea ecx, [rax + 2]
mov rdx, rdi
call fcn.140008350
jmp 0x140008b42
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.GetFullPathName_failed____d__0x_x__n
lea rcx, [rsp + 0x50]
mov r9d, eax
mov r8d, eax
call fcn.140008bf0
jmp 0x140008888
lea rcx, str.AMD_Fuel_Service_n
call qword [sym.imp.MSVCR110.dll_wprintf_s]
lea rcx, str.Usage:__n
call qword [sym.imp.MSVCR110.dll_wprintf_s]
lea rcx, str.__Fuel.Service__install_____install_the_service_n
call qword [sym.imp.MSVCR110.dll_wprintf_s]
lea rcx, str.__Fuel.Service__uninstall___uninstall_the_service_n
call qword [sym.imp.MSVCR110.dll_wprintf_s]
lea rcx, str.__Fuel.Service__start_______start_the_service_n
call qword [sym.imp.MSVCR110.dll_wprintf_s]
lea rcx, str.__Fuel.Service__stop________stop_the_service_n
call qword [sym.imp.MSVCR110.dll_wprintf_s]
lea rcx, str.__Fuel.Service__local_______run_the_app_as_a_local_RPC_server_n
call qword [sym.imp.MSVCR110.dll_wprintf_s]
xor eax, eax
mov rcx, qword [rbp + 0x160]
xor rcx, rsp
call fcn.140031010
mov rbx, qword [rsp + 0x2a0]
add rsp, 0x270
pop rdi
pop rsi
pop rbp
ret