Function at 0x140009d30
Capabilities:
Link many functions at runtime

Disassembly:
push r15
sub rsp, 0x50
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], r14
mov rax, qword [0x1402aa768]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rsi, rcx
call fcn.140028df4
mov rcx, rax
test rax, rax
jne 0x140009d7d
mov ecx, 0x80004005
call fcn.140009a10
int3
mov rax, qword [rax]
call qword [rax + 0x18]
mov r14, rax
lea rcx, [rax + 0x18]
mov qword [rsp + 0x38], rcx
call fcn.140028df4
mov rcx, rax
test rax, rax
jne 0x140009da7
mov ecx, 0x80004005
call fcn.140009a10
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x28], rax
mov edi, 1
lea r9, [0x140264718]
mov r8, qword [0x1402bc480]
mov r8, qword [r8 + 0x26f1]
lea rdx, str._s_s
lea rcx, [rsp + 0x28]
call fcn.140009880
mov rbx, qword [rsp + 0x28]
lea r15, [rbx - 0x18]
mov rcx, r15
call fcn.1400093f0
add rax, 0x18
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x20]
call fcn.14000a210
test al, al
jne 0x140009e28
mov r9, rbx
lea r8d, [rdi + 0x41]
lea rdx, str.CLoadDLL::nLoadDLL
lea rcx, str._r_n_s:_d:_Cannot_find___s_
call fcn.140009c10
jmp 0x14000a1a4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [rsi + 9], rax
test rax, rax
jne 0x140009e63
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, 0x4b
lea rdx, str.CLoadDLL::nLoadDLL
lea rcx, str._r_n_s:_d:_Load_DLL_FAIL__GetLastError__d
call fcn.140009c10
xor edi, edi
jmp 0x14000a1a4
lea rdx, str.LoadAsmIODriver
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0x11], rax
test rax, rax
jne 0x140009ea5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, 0x54
lea rdx, str.CLoadDLL::nLoadDLL
lea rcx, str._r_n_s:_d:_load_mLoadAsmIODriver_FAIL__GetLastError:__d
call fcn.140009c10
xor edi, edi
jmp 0x14000a1a4
lea rdx, str.StartAsmIODriver
mov rcx, qword [rsi + 9]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0x129], rax
cmp qword [rsi + 0x11], 0
jne 0x140009eed
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, VarDateFromDisp
lea rdx, str.CLoadDLL::nLoadDLL
lea rcx, str._r_n_s:_d:_load_mStartAsmIODriver_FAIL__GetLastError:__d
call fcn.140009c10
xor edi, edi
jmp 0x14000a1a4
lea rdx, str.UnloadAsmIODriver
mov rcx, qword [rsi + 9]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0x19], rax
test rax, rax
jne 0x140009f30
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, 0x65
lea rdx, str.CLoadDLL::nLoadDLL
lea rcx, str._r_n_s:_d:_Load_UnloadAsmIODriver_FAIL__GetLastError:__d
call fcn.140009c10
xor edi, edi
jmp 0x14000a1a4
lea rdx, str.fwUpdate
mov rcx, qword [rsi + 9]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0xe9], rax
test rax, rax
jne 0x140009f76
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, 0x136
lea rdx, str.CLoadDLL::nLoadDLL
lea rcx, str._r_n_s:_d:_load_fwUpdate_FAIL__GetLastError:__d
call fcn.140009c10
xor edi, edi
jmp 0x14000a1a4
lea rdx, str.ReadFwVersion
mov rcx, qword [rsi + 9]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0xf1], rax
test rax, rax
jne 0x140009fbc
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, 0x13e
lea rdx, str.CLoadDLL::nLoadDLL
lea rcx, str._r_n_s:_d:_load_ReadFwVersion_FAIL__GetLastError:__d
call fcn.140009c10
xor edi, edi
jmp 0x14000a1a4
lea rdx, str.ReadSPIflashID
mov rcx, qword [rsi + 9]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0xf9], rax
test rax, rax
jne 0x14000a002
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, 0x146
lea rdx, str.CLoadDLL::nLoadDLL
lea rcx, str._r_n_s:_d:_load_ReadSPIflashID_FAIL__GetLastError:__d
call fcn.140009c10
xor edi, edi
jmp 0x14000a1a4
lea rdx, str.ReadBoardVersion
mov rcx, qword [rsi + 9]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0x101], rax
test rax, rax
jne 0x14000a048
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, 0x14e
lea rdx, str.CLoadDLL::nLoadDLL
lea rcx, str._r_n_s:_d:_load_ReadBoardVersion_FAIL__GetLastError:__d
call fcn.140009c10
xor edi, edi
jmp 0x14000a1a4
lea rdx, str.ReadChipVersion
mov rcx, qword [rsi + 9]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0x109], rax
test rax, rax
jne 0x14000a08e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, 0x156
lea rdx, str.CLoadDLL::nLoadDLL
lea rcx, str._r_n_s:_d:_load_ReadChipVersion_FAIL__GetLastError:__d
call fcn.140009c10
xor edi, edi
jmp 0x14000a1a4
lea rdx, str.FWrestart
mov rcx, qword [rsi + 9]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0x111], rax
test rax, rax
jne 0x14000a0d4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, 0x15e
lea rdx, str.CLoadDLL::nLoadDLL
lea rcx, str._r_n_s:_d:_load_FWrestart_FAIL__GetLastError:__d
call fcn.140009c10
xor edi, edi
jmp 0x14000a1a4
lea rdx, str.ReadxhciStatus
mov rcx, qword [rsi + 9]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0x119], rax
test rax, rax
jne 0x14000a11a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, 0x166
lea rdx, str.CLoadDLL::nLoadDLL
lea rcx, str._r_n_s:_d:_load_ReadxhciStatus_FAIL__GetLastError:__d
call fcn.140009c10
xor edi, edi
jmp 0x14000a1a4
lea rdx, str.ReadDPStatus
mov rcx, qword [rsi + 9]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0x121], rax
test rax, rax
jne 0x14000a15d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, 0x16e
lea rdx, str.CLoadDLL::nLoadDLL
lea rcx, str._r_n_s:_d:_load_ReadDPStatus_FAIL__GetLastError:__d
call fcn.140009c10
xor edi, edi
jmp 0x14000a1a4
lea rdx, str.ReadDownStreamPortState
mov rcx, qword [rsi + 9]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0x131], rax
test rax, rax
jne 0x14000a1a0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, 0x176
lea rdx, str.CLoadDLL::nLoadDLL
lea rcx, str._r_n_s:_d:_load_ReadDownStreamPortState_FAIL__GetLastError:__d
call fcn.140009c10
xor edi, edi
jmp 0x14000a1a4
mov byte [rsi + 8], dil
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [r15 + 0x10], eax
sub eax, 1
jg 0x14000a1c1
mov rcx, qword [r15]
mov rax, qword [rcx]
mov rdx, r15
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lock xadd dword [r14 + 0x10], ebx
sub ebx, 1
jg 0x14000a1d9
mov rcx, qword [r14]
mov r8, qword [rcx]
mov rdx, r14
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, edi
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1401d0680
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x70]
mov r14, qword [rsp + 0x78]
add rsp, 0x50
pop r15
ret