Function at 0x140044ff0
Capabilities:
Check if file exists
Create directory
Create process on windows
Create thread
Extract resource via kernel32 functions
Get common file path
Get file attributes
Query environment variable
Write and execute a file
Write file on windows

Disassembly:
mov r11, rsp
push rbp
lea rbp, [r11 - 0xa38]
sub rsp, 0xb30
mov rax, qword [0x140164030]
xor rax, rsp
mov qword [rbp + 0xa00], rax
mov qword [r11 + 0x10], rbx
mov ebx, edx
mov qword [r11 + 0x18], rsi
mov qword [r11 + 0x20], rdi
mov rdi, rcx
mov rcx, qword [rcx + 0x780]
mov qword [r11 - 0x20], r14
test rcx, rcx
je 0x14004503f
mov edx, 0xffffffff
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_WaitForSingleObject]
xor sil, sil
xor r14b, r14b
test bl, 4
je 0x14004505f
cmp byte [rdi + 0xa0], sil
jne 0x14004505f
call fcn.14004a070
test al, al
jne 0x14004505f
mov sil, 1
test bl, 8
je 0x14004506f
call fcn.14004a170
test al, al
sete r14b
mov byte [rsp + 0x40], 0
test sil, sil
jne 0x140045082
test r14b, r14b
je 0x1400455fc
mov qword [rsp + 0xb28], r12
lea rdx, [rbp + 0x5e0]
mov ecx, 0x104
mov qword [rsp + 0xb20], r13
call qword [sym.imp.api_ms_win_core_file_l1_2_0.dll_GetTempPathW]
call qword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetTickCount]
mov r9d, 0xa
lea rdx, [rbp + 0x390]
mov ecx, eax
lea r8d, [r9 + 0x14]
call fcn.1400d9278
lea r8, [rbp + 0x390]
mov edx, 0x104
lea rcx, [rbp + 0x5e0]
call fcn.1400d6ec0
xor edx, edx
lea rcx, [rbp + 0x5e0]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_CreateDirectoryW]
lea r9, [rbp + 0x5e0]
mov edx, 0x104
lea r8, str._sDriver.zip
lea rcx, [rbp + 0x7f0]
call fcn.140017d20
lea r8, [0x140126520]
xor ecx, ecx
lea rdx, [0x140126530]
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_1.dll_FindResourceW]
mov rdx, rax
xor ecx, ecx
mov r13, rax
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_LoadResource]
xor r12d, r12d
mov rbx, rax
test rax, rax
je 0x140045532
mov rcx, rax
mov qword [rsp + 0xb10], r15
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_LockResource]
mov r15, rax
test rax, rax
je 0x140045521
mov qword [rsp + 0x30], r12
lea rcx, [rbp + 0x7f0]
mov dword [rsp + 0x28], 0x80000000
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 2
mov edx, 0x10000000
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_CreateFileW]
mov r12, rax
cmp rax, 0xffffffffffffffff
je 0x14004551e
mov rdx, r13
mov dword [rsp + 0x48], 0
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_SizeofResource]
lea r9, [rsp + 0x48]
mov qword [rsp + 0x20], 0
mov r8d, eax
mov rdx, r15
mov rcx, r12
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_WriteFile]
mov rcx, r12
call qword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_FreeResource]
lea rax, [rbp + 0x7f0]
mov byte [rsp + 0x60], 1
mov qword [rsp + 0x50], rax
lea r9, [rsp + 0x50]
lea rax, [rbp + 0x5e0]
xor r12d, r12d
mov qword [rsp + 0x58], rax
lea r8, [0x1400977a0]
lea rax, [rsp + 0x48]
mov dword [rsp + 0x48], r12d
mov qword [rsp + 0x28], rax
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], r12d
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_CreateThread]
mov rcx, rax
mov edx, 0xffffffff
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_WaitForSingleObject]
cmp byte [rsp + 0x60], r12b
je 0x14004552a
mov ecx, 0x90
call fcn.1400c2704
xorps xmm0, xmm0
mov qword [rsp + 0x48], rax
mov rcx, rax
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x60], xmm0
movups xmmword [rax + 0x70], xmm0
movups xmmword [rax + 0x80], xmm0
call fcn.1400517b0
mov rbx, rax
test rax, rax
je 0x14004552a
test sil, sil
je 0x140045447
lea r9, [rbp + 0x5e0]
mov edx, 0x104
lea r8, str._s_asusbtcommitf.inf
lea rcx, [rbp + 0x3d0]
call fcn.140017d20
mov dword [rsp + 0x68], 0x5568dd0b
mov dword [rsp + 0x6c], 0x40e4fc6c
mov dword [rsp + 0x70], 0x51f11499
mov dword [rsp + 0x74], 0xd8ce9b10
cmp qword [rbx + 0x88], r12
je 0x140045447
xor edx, edx
lea rcx, [rbp - 0x7c]
mov r8d, 0x40c
call fcn.1400c5120
mov dword [rbp - 0x80], 1
xor r15b, r15b
mov qword [rsp + 0x48], r12
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_GetCurrentProcess]
mov rcx, rax
lea r8, [rsp + 0x48]
lea edx, [r12 + 0x28]
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_OpenProcessToken]
test eax, eax
je 0x140045447
lea r8, [rsp + 0x54]
xor ecx, ecx
lea rdx, str.SeLoadDriverPrivilege
call qword [sym.imp.api_ms_win_security_lsalookup_l2_1_0.dll_LookupPrivilegeValueW]
test eax, eax
je 0x140045366
mov rcx, qword [rsp + 0x48]
lea r8, [rsp + 0x50]
mov qword [rsp + 0x28], r12
xor r9d, r9d
xor edx, edx
mov qword [rsp + 0x20], r12
mov dword [rsp + 0x50], 1
mov dword [rsp + 0x5c], 2
call qword [sym.imp.api_ms_win_security_base_l1_1_0.dll_AdjustTokenPrivileges]
test eax, eax
setne r15b
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
test r15b, r15b
je 0x140045447
lea r8, str.asusbtcommitf
mov edx, 0x100
lea rax, [rbp - 0x70]
sub r8, rax
lea rcx, [rbp - 0x70]
lea rax, [rdx + 0x7ffffefe]
test rax, rax
je 0x1400453cd
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1400453be
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140045391
mov word [rcx - 2], r12w
jmp 0x140045447
test rdx, rdx
jne 0x1400453cd
mov word [rcx - 2], r12w
jmp 0x140045447
mov rax, qword [rbx + 0x88]
lea r9, [rbp - 0x80]
mov word [rcx], r12w
lea rdx, [rsp + 0x68]
xor ecx, ecx
xor r8d, r8d
call qword [0x1400fac68]
test eax, eax
js 0x140045447
cmp qword [rbx + 0x80], r12
je 0x140045447
lea rcx, [rbp + 0x3d0]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140045447
lea rax, [rsp + 0x48]
mov dword [rsp + 0x48], r12d
mov qword [rsp + 0x20], rax
lea r8, [rbp + 0x3d0]
mov rax, qword [rbx + 0x80]
lea rdx, str.BTHENUM5568dd0b_fc6c_40e4_9914_f151109bced8
mov r9d, 1
xor ecx, ecx
call qword [0x1400fac68]
cmp dword [rsp + 0x48], r12d
setne byte [rsp + 0x40]
test r14b, r14b
je 0x1400454e3
lea r8, [rsp + 0x40]
mov rcx, rbx
lea rdx, str.RootAsusSharedCam
call fcn.140051bc0
lea r9, [rbp + 0x5e0]
mov edx, 0x104
lea r8, str._sAsusSharedCam.inf
lea rcx, [rbp + 0x3d0]
call fcn.140017d20
lea rdx, [rbp + 0x3d0]
mov rcx, rbx
call fcn.140051980
test al, al
je 0x1400454e3
cmp qword [rbx + 0x80], r12
je 0x1400454e3
lea rcx, [rbp + 0x3d0]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400454e3
lea rax, [rsp + 0x48]
mov dword [rsp + 0x48], r12d
mov qword [rsp + 0x20], rax
lea r8, [rbp + 0x3d0]
mov rax, qword [rbx + 0x80]
lea rdx, str.RootAsusSharedCam
mov r9d, 1
xor ecx, ecx
call qword [0x1400fac68]
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400454f1
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_FreeLibrary]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140045500
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_FreeLibrary]
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x14004550f
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_FreeLibrary]
mov edx, 0x90
mov rcx, rbx
call fcn.1400c2470
jmp 0x14004552a
xor r12d, r12d
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_FreeResource]
mov r15, qword [rsp + 0xb10]
xor edx, edx
lea rcx, [rbp - 0x80]
mov r8d, 0x208
call fcn.1400c5120
mov r8d, 0x104
lea rdx, [rbp - 0x80]
lea rcx, str.ComSpec
call qword [sym.imp.api_ms_win_core_processenvironment_l1_1_0.dll_GetEnvironmentVariableW]
mov r13, qword [rsp + 0xb20]
test eax, eax
je 0x1400455b8
xor edx, edx
lea rcx, [rbp + 0x3d0]
mov r8d, 0x208
call fcn.1400c5120
lea r9, [rbp + 0x5e0]
mov edx, 0x104
lea r8, str._c_rmdir__s__q___s____NUL
lea rcx, [rbp + 0x3d0]
call fcn.140017d20
lea r9, [rbp + 0x3d0]
mov dword [rsp + 0x28], r12d
lea r8, [rbp - 0x80]
mov qword [rsp + 0x20], r12
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
mov r12, qword [rsp + 0xb28]
test sil, sil
je 0x1400455de
call fcn.14004a070
test al, al
jne 0x1400455de
or byte [rdi + 0x54], 1
lea rcx, str._AsusSync_CommMgr__InstallDriver___HFP_driver_is_not_installed__its_a_unrecoverable_case_n
call fcn.140095ab0
test r14b, r14b
je 0x1400455fc
call fcn.14004a170
test al, al
jne 0x1400455fc
or byte [rdi + 0x54], 0x10
lea rcx, str._AsusSync_CommMgr__InstallDriver___SharedCam_driver_is_not_installed__its_a_unrecoverable_case_n
call fcn.140095ab0
mov rcx, qword [rdi + 0x780]
mov r14, qword [rsp + 0xb18]
mov rdi, qword [rsp + 0xb58]
mov rsi, qword [rsp + 0xb50]
mov rbx, qword [rsp + 0xb48]
test rcx, rcx
je 0x14004562e
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_ReleaseMutex]
mov rcx, qword [rbp + 0xa00]
xor rcx, rsp
call fcn.1400c2450
add rsp, 0xb30
pop rbp
ret