Function at 0x180082a20
Capabilities:
Link many functions at runtime

Disassembly:
sub rsp, 0x28
mov ecx, dword [0x180156f5c]
test ecx, ecx
jne 0x180083538
mov eax, dword [0x180156f58]
cmp eax, 3
ja 0x180083538
inc eax
mov qword [rsp + 0x20], rbx
mov dword [0x180156f58], eax
call fcn.180078b30
test eax, eax
je 0x180082a66
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
jmp 0x180082a73
lea rcx, [0x1800d4538]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rbx, rax
test rax, rax
jne 0x180082a85
mov rbx, qword [rsp + 0x20]
add rsp, 0x28
ret
lea rdx, [0x180100db0]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800ea880]
mov rcx, rbx
mov qword [0x180156ba8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800d7538]
mov rcx, rbx
mov qword [0x180156bb0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.DuplicateHandle
mov rcx, rbx
mov qword [0x180156bb8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100d90]
mov rcx, rbx
mov qword [0x180156bc0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ReadFileEx
mov rcx, rbx
mov qword [0x180156bc8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ReadFileScatter
mov rcx, rbx
mov qword [0x180156bd0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100d60]
mov rcx, rbx
mov qword [0x180156bd8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.WriteFileEx
mov rcx, rbx
mov qword [0x180156be0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.WriteFileGather
mov rcx, rbx
mov qword [0x180156be8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.LockFile
mov rcx, rbx
mov qword [0x180156bf0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.LockFileEx
mov rcx, rbx
mov qword [0x180156bf8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.UnlockFile
mov rcx, rbx
mov qword [0x180156c00], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.UnlockFileEx
mov rcx, rbx
mov qword [0x180156c08], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100cf0]
mov rcx, rbx
mov qword [0x180156c10], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100cd8]
mov rcx, rbx
mov qword [0x180156c18], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100cc8]
mov rcx, rbx
mov qword [0x180156c20], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.SetFilePointerEx
mov rcx, rbx
mov qword [0x180156c28], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100c98]
mov rcx, rbx
mov qword [0x180156c30], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100c80]
mov rcx, rbx
mov qword [0x180156c38], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetFileAttributesExA
mov qword [0x180156c40], rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800f63f0]
mov rcx, rbx
mov qword [0x180156c48], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100c68]
mov rcx, rbx
mov qword [0x180156c50], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100c50]
mov rcx, rbx
mov qword [0x180156c58], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100c30]
mov rcx, rbx
mov qword [0x180156c60], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100c20]
mov rcx, rbx
mov qword [0x180156c68], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetFileSizeEx
mov rcx, rbx
mov qword [0x180156c70], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetFileTime
mov rcx, rbx
mov qword [0x180156c78], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.SetFileTime
mov rcx, rbx
mov qword [0x180156c80], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100be0]
mov rcx, rbx
mov qword [0x180156c88], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetBinaryTypeA
mov rcx, rbx
mov qword [0x180156c90], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetBinaryTypeW
mov rcx, rbx
mov qword [0x180156c98], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetFullPathNameA
mov rcx, rbx
mov qword [0x180156ca0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetFullPathNameW
mov rcx, rbx
mov qword [0x180156ca8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetLongPathNameA
mov rcx, rbx
mov qword [0x180156cb0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetLongPathNameW
mov rcx, rbx
mov qword [0x180156cb8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetShortPathNameA
mov rcx, rbx
mov qword [0x180156cc0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetShortPathNameW
mov rcx, rbx
mov qword [0x180156cc8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100b50]
mov rcx, rbx
mov qword [0x180156cd0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100b40]
mov rcx, rbx
mov qword [0x180156cd8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100b30]
mov qword [0x180156ce0], rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100b20]
mov rcx, rbx
mov qword [0x180156ce8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100b10]
mov rcx, rbx
mov qword [0x180156cf0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800ea860]
mov rcx, rbx
mov qword [0x180156cf8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.MoveFileWithProgressA
mov rcx, rbx
mov qword [0x180156d00], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.MoveFileWithProgressW
mov rcx, rbx
mov qword [0x180156d08], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100ad0]
mov rcx, rbx
mov qword [0x180156d10], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100ac0]
mov rcx, rbx
mov qword [0x180156d18], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CopyFileExA
mov rcx, rbx
mov qword [0x180156d20], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CopyFileExW
mov rcx, rbx
mov qword [0x180156d28], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CopyFile2
mov rcx, rbx
mov qword [0x180156d30], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ReplaceFileA
mov rcx, rbx
mov qword [0x180156d38], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ReplaceFileW
mov rcx, rbx
mov qword [0x180156d40], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800d75c8]
mov rcx, rbx
mov qword [0x180156d48], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CreateFileMappingW
mov rcx, rbx
mov qword [0x180156d50], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800d7598]
mov rcx, rbx
mov qword [0x180156d58], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800d75b0]
mov rcx, rbx
mov qword [0x180156d60], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100a70]
mov rcx, rbx
mov qword [0x180156d68], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.MapViewOfFileEx
mov rcx, rbx
mov qword [0x180156d70], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100a50]
mov rcx, rbx
mov qword [0x180156d78], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.FlushViewOfFile
mov rcx, rbx
mov qword [0x180156d80], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100a28]
mov rcx, rbx
mov qword [0x180156d88], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100a10]
mov rcx, rbx
mov qword [0x180156d90], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CreateDirectoryExA
mov rcx, rbx
mov qword [0x180156d98], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CreateDirectoryExW
mov rcx, rbx
mov qword [0x180156da0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1801009c8]
mov rcx, rbx
mov qword [0x180156da8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1801009b0]
mov rcx, rbx
mov qword [0x180156db0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1801009a0]
mov rcx, rbx
mov qword [0x180156db8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100990]
mov rcx, rbx
mov qword [0x180156dc0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.FindFirstFileExA
mov rcx, rbx
mov qword [0x180156dc8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.FindFirstFileExW
mov rcx, rbx
mov qword [0x180156dd0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100950]
mov rcx, rbx
mov qword [0x180156dd8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100940]
mov rcx, rbx
mov qword [0x180156de0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100930]
mov rcx, rbx
mov qword [0x180156de8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.K32GetMappedFileNameA
mov rcx, rbx
mov qword [0x180156df0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.K32GetMappedFileNameW
mov rcx, rbx
mov qword [0x180156df8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetFinalPathNameByHandleA
mov rcx, rbx
mov qword [0x180156e00], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetFinalPathNameByHandleW
mov rcx, rbx
mov qword [0x180156e08], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1801008b0]
mov rcx, rbx
mov qword [0x180156e10], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1801008b0]
mov rcx, rbx
mov qword [0x180156e18], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CreateProcessInternalW
mov rcx, rbx
mov qword [0x180156e20], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180156e28], rax
lea rdx, [0x1800d7528]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100880]
mov rcx, rbx
mov qword [0x180156e30], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ProcessIdToSessionId
mov rcx, rbx
mov qword [0x180156e38], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.OpenThread
mov rcx, rbx
mov qword [0x180156e40], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.SwitchToThread
mov rcx, rbx
mov qword [0x180156e48], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CreateToolhelp32Snapshot
mov rcx, rbx
mov qword [0x180156e50], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Heap32First
mov rcx, rbx
mov qword [0x180156e58], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Heap32ListFirst
mov rcx, rbx
mov qword [0x180156e60], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Heap32ListNext
mov rcx, rbx
mov qword [0x180156e68], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Heap32Next
mov rcx, rbx
mov qword [0x180156e70], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Module32First
mov rcx, rbx
mov qword [0x180156e78], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Module32FirstW
mov rcx, rbx
mov qword [0x180156e80], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Module32Next
mov rcx, rbx
mov qword [0x180156e88], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Module32NextW
mov rcx, rbx
mov qword [0x180156e90], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Process32First
mov rcx, rbx
mov qword [0x180156e98], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Process32FirstW
mov rcx, rbx
mov qword [0x180156ea0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Process32Next
mov rcx, rbx
mov qword [0x180156ea8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Process32NextW
mov rcx, rbx
mov qword [0x180156eb0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Thread32First
mov rcx, rbx
mov qword [0x180156eb8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Thread32Next
mov rcx, rbx
mov qword [0x180156ec0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Toolhelp32ReadProcessMemory
mov qword [0x180156ec8], rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.K32GetProcessImageFileNameA
mov rcx, rbx
mov qword [0x180156ed0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.K32GetProcessImageFileNameW
mov rcx, rbx
mov qword [0x180156ed8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GlobalMemoryStatusEx
mov rcx, rbx
mov qword [0x180156ee0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.IsWow64Process
mov rcx, rbx
mov qword [0x180156ee8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Wow64DisableWow64FsRedirection
mov rcx, rbx
mov qword [0x180156ef0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Wow64EnableWow64FsRedirection
mov rcx, rbx
mov qword [0x180156ef8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Wow64RevertWow64FsRedirection
mov rcx, rbx
mov qword [0x180156f00], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.WTSGetActiveConsoleSessionId
mov rcx, rbx
mov qword [0x180156f08], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetProcessId
mov rcx, rbx
mov qword [0x180156f10], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100640]
mov rcx, rbx
mov qword [0x180156f18], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180100630]
mov rcx, rbx
mov qword [0x180156f20], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetCommandLineW
mov rcx, rbx
mov qword [0x180156f28], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetQueuedCompletionStatus
mov rcx, rbx
mov qword [0x180156f30], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetUserDefaultUILanguage
mov rcx, rbx
mov qword [0x180156f38], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetPackagePathByFullName
mov rcx, rbx
mov qword [0x180156f40], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetPackageFullName
mov rcx, rbx
mov qword [0x180156f48], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, qword [rsp + 0x20]
mov dword [0x180156f5c], 1
mov qword [0x180156f50], rax
mov eax, 1
add rsp, 0x28
ret
mov eax, ecx
add rsp, 0x28
ret