Function at 0x140004a50
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
sub rsp, 0x20
mov rsi, rcx
test rcx, rcx
je 0x140004a8f
mov rcx, qword [rcx]
test rcx, rcx
je 0x140004a82
mov rax, qword [rcx + 0x270]
test rax, rax
je 0x140004a82
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, qword [rsi]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rsi], 0
mov edx, 0x278
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov qword [rsi], rax
mov rbx, rax
test rax, rax
jne 0x140004ab8
lea eax, [rbx - 1]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rsi
ret
mov qword [rsp + 0x30], rdi
lea rdi, str.nvcuda.dll
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [rbx + 0x270], rax
test rax, rax
je 0x1400054ac
lea rdi, str.cuInit
mov rcx, rax
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuDeviceGetCount
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 8], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuDeviceGet
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x10], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuDeviceGetAttribute
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x18], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuDeviceGetName
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x20], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuDeviceComputeCapability
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x38], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuCtxCreate_v2
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x40], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuCtxSetLimit
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x48], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuCtxPushCurrent_v2
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x50], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuCtxPopCurrent_v2
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x58], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuCtxDestroy_v2
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x60], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuMemAlloc_v2
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x68], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuMemAllocPitch_v2
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x70], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuMemsetD8_v2
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x78], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuMemsetD8Async
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x80], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuMemFree_v2
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x88], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuMemcpy
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x90], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuMemcpyAsync
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x98], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuMemcpy2D_v2
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0xa0], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuMemcpy2DAsync_v2
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0xa8], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuGetErrorName
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0xb0], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuGetErrorString
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0xb8], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuCtxGetDevice
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0xc0], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuDevicePrimaryCtxRetain
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0xc8], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuDevicePrimaryCtxRelease
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0xd0], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuDevicePrimaryCtxSetFlags
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0xd8], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuDevicePrimaryCtxGetState
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0xe0], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuDevicePrimaryCtxReset
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0xe8], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuStreamCreate
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0xf0], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuStreamQuery
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0xf8], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuStreamSynchronize
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x100], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuStreamDestroy_v2
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x108], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuStreamAddCallback
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x110], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuEventCreate
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x118], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuEventDestroy_v2
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x120], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuEventSynchronize
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x128], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuEventQuery
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x130], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuEventRecord
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x138], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuLaunchKernel
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x140], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuLinkCreate
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x148], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuLinkAddData
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x150], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuLinkComplete
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x158], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuLinkDestroy
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x160], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuModuleLoadData
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x168], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuModuleUnload
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x170], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuModuleGetFunction
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x178], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuModuleGetGlobal
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x180], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuTexObjectCreate
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x188], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuTexObjectDestroy
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x190], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuGLGetDevices_v2
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x198], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuGraphicsGLRegisterImage
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x1a0], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuGraphicsUnregisterResource
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x1a8], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuGraphicsMapResources
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x1b0], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuGraphicsUnmapResources
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x1b8], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuGraphicsSubResourceGetMappedArray
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x1c0], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuGraphicsResourceGetMappedPointer
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x1c8], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuD3D9CtxCreate
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x1d0], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuD3D9CtxCreateOnDevice
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x1d8], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuD3D9GetDevice
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x1e0], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuD3D9GetDevices
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x1e8], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuD3D9GetDirect3DDevice
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x1f0], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuGraphicsD3D9RegisterResource
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x1f8], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuD3D11GetDevice
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x200], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuD3D11GetDevices
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x208], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuGraphicsD3D11RegisterResource
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x210], rax
test rax, rax
je 0x1400054ac
mov rcx, qword [rbx + 0x270]
lea rdi, str.cuGraphicsResourceSetMapFlags_v2
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x218], rax
test rax, rax
jne 0x14000550b
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, rdi
lea rdx, str.Cannot_load__s_n
mov rcx, rax
call fcn.140006f00
mov rcx, qword [rsi]
test rcx, rcx
je 0x1400054e9
mov rax, qword [rcx + 0x270]
test rax, rax
je 0x1400054e9
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, qword [rsi]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rdi, qword [rsp + 0x30]
mov eax, 0xffffffff
mov qword [rsi], 0
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rsi
ret
mov rcx, qword [rbx + 0x270]
lea rdx, str.cuDeviceGetUuid
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 0x270]
lea rdx, str.cuDeviceGetLuid
mov qword [rbx + 0x28], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 0x270]
lea rdx, str.cuImportExternalMemory
mov qword [rbx + 0x30], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 0x270]
lea rdx, str.cuDestroyExternalMemory
mov qword [rbx + 0x220], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 0x270]
lea rdx, str.cuExternalMemoryGetMappedBuffer
mov qword [rbx + 0x228], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 0x270]
lea rdx, str.cuExternalMemoryGetMappedMipmappedArray
mov qword [rbx + 0x230], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 0x270]
lea rdx, str.cuMipmappedArrayGetLevel
mov qword [rbx + 0x238], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 0x270]
lea rdx, str.cuMipmappedArrayDestroy
mov qword [rbx + 0x248], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 0x270]
lea rdx, str.cuImportExternalSemaphore
mov qword [rbx + 0x240], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 0x270]
lea rdx, str.cuDestroyExternalSemaphore
mov qword [rbx + 0x250], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 0x270]
lea rdx, str.cuSignalExternalSemaphoresAsync
mov qword [rbx + 0x258], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 0x270]
lea rdx, str.cuWaitExternalSemaphoresAsync
mov qword [rbx + 0x260], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, qword [rsp + 0x30]
mov qword [rbx + 0x268], rax
xor eax, eax
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rsi
ret