Function at 0x14003ca50
Capabilities:
Get common file path
Link many functions at runtime

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x450
mov rax, qword [0x14016c9d0]
xor rax, rsp
mov qword [rsp + 0x440], rax
movzx eax, byte [0x14005bb37]
mov byte [rsp + 0x20], al
lea rax, [rsp + 0x21]
mov rdi, rax
xor eax, eax
mov ecx, 0x207
rep stosb byte [rdi], al
movzx eax, byte [0x14005bb3f]
mov byte [rsp + 0x230], al
lea rax, [rsp + 0x231]
mov rdi, rax
xor eax, eax
mov ecx, 0x207
rep stosb byte [rdi], al
mov edx, 0x104
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea rdx, str.SetupApi.dll
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_lstrcatA]
mov r8d, 8
xor edx, edx
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov rcx, qword [rsp + 0x460]
mov qword [rcx + 0x10], rax
mov rax, qword [rsp + 0x460]
cmp qword [rax + 0x10], 0
je 0x14003cb83
lea rdx, str.SetupDiGetClassDevsA
mov rax, qword [rsp + 0x460]
mov rcx, qword [rax + 0x10]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14017eac0], rax
lea rdx, str.SetupDiEnumDeviceInterfaces
mov rax, qword [rsp + 0x460]
mov rcx, qword [rax + 0x10]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14017eac8], rax
lea rdx, str.SetupDiGetDeviceInterfaceDetailA
mov rax, qword [rsp + 0x460]
mov rcx, qword [rax + 0x10]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14017ead0], rax
lea rdx, str.SetupDiDestroyDeviceInfoList
mov rax, qword [rsp + 0x460]
mov rcx, qword [rax + 0x10]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14017ead8], rax
jmp 0x14003cba6
mov r9d, 0x10
lea r8, [0x14005be38]
lea rdx, [0x14005be54]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x14003cd0a
mov edx, 0x104
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea rdx, str.hid.dll
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcatA]
mov r8d, 8
xor edx, edx
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov rcx, qword [rsp + 0x460]
mov qword [rcx + 0x18], rax
mov rax, qword [rsp + 0x460]
cmp qword [rax + 0x18], 0
je 0x14003cce5
lea rdx, str.HidD_GetHidGuid
mov rax, qword [rsp + 0x460]
mov rcx, qword [rax + 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14017eae0], rax
lea rdx, str.HidD_SetFeature
mov rax, qword [rsp + 0x460]
mov rcx, qword [rax + 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14017eae8], rax
lea rdx, str.HidD_GetFeature
mov rax, qword [rsp + 0x460]
mov rcx, qword [rax + 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14017eaf0], rax
lea rdx, str.HidD_GetPreparsedData
mov rax, qword [rsp + 0x460]
mov rcx, qword [rax + 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14017eaf8], rax
lea rdx, str.HidD_GetAttributes
mov rax, qword [rsp + 0x460]
mov rcx, qword [rax + 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14017eb00], rax
lea rdx, str.HidD_FreePreparsedData
mov rax, qword [rsp + 0x460]
mov rcx, qword [rax + 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14017eb08], rax
lea rdx, str.HidP_GetCaps
mov rax, qword [rsp + 0x460]
mov rcx, qword [rax + 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14017eb10], rax
jmp 0x14003cd05
mov r9d, 0x10
lea r8, [0x14005bf18]
lea rdx, [0x14005bf30]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x14003cd0a
mov eax, 1
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.140046670
add rsp, 0x450
pop rdi
ret