Function at 0x180057520
Capabilities:
Link many functions at runtime

Disassembly:
sub rsp, 0x28
mov ecx, dword [0x180094954]
test ecx, ecx
jne 0x180058038
mov eax, dword [0x180094950]
cmp eax, 3
ja 0x180058038
inc eax
mov qword [rsp + 0x20], rbx
mov dword [0x180094950], eax
call fcn.180029060
test eax, eax
je 0x180057566
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
jmp 0x180057573
lea rcx, [0x1800703f8]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rbx, rax
test rax, rax
jne 0x180057585
mov rbx, qword [rsp + 0x20]
add rsp, 0x28
ret
lea rdx, [0x180078d08]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078cf8]
mov rcx, rbx
mov qword [0x1800945a0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078ce8]
mov rcx, rbx
mov qword [0x1800945a8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.DuplicateHandle
mov rcx, rbx
mov qword [0x1800945b0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078cc8]
mov rcx, rbx
mov qword [0x1800945b8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ReadFileEx
mov rcx, rbx
mov qword [0x1800945c0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ReadFileScatter
mov rcx, rbx
mov qword [0x1800945c8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078c98]
mov rcx, rbx
mov qword [0x1800945d0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.WriteFileEx
mov rcx, rbx
mov qword [0x1800945d8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.WriteFileGather
mov rcx, rbx
mov qword [0x1800945e0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.LockFile
mov rcx, rbx
mov qword [0x1800945e8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.LockFileEx
mov rcx, rbx
mov qword [0x1800945f0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.UnlockFile
mov rcx, rbx
mov qword [0x1800945f8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.UnlockFileEx
mov rcx, rbx
mov qword [0x180094600], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.SetEndOfFile
mov rcx, rbx
mov qword [0x180094608], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078c10]
mov rcx, rbx
mov qword [0x180094610], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078c00]
mov rcx, rbx
mov qword [0x180094618], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.SetFilePointerEx
mov rcx, rbx
mov qword [0x180094620], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078bd0]
mov rcx, rbx
mov qword [0x180094628], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078bb8]
mov rcx, rbx
mov qword [0x180094630], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetFileAttributesExA
mov qword [0x180094638], rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800704a0]
mov rcx, rbx
mov qword [0x180094640], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078ba0]
mov rcx, rbx
mov qword [0x180094648], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078b88]
mov rcx, rbx
mov qword [0x180094650], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078b68]
mov rcx, rbx
mov qword [0x180094658], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078b58]
mov rcx, rbx
mov qword [0x180094660], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetFileSizeEx
mov rcx, rbx
mov qword [0x180094668], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetFileTime
mov rcx, rbx
mov qword [0x180094670], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.SetFileTime
mov rcx, rbx
mov qword [0x180094678], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078b18]
mov rcx, rbx
mov qword [0x180094680], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetBinaryTypeA
mov rcx, rbx
mov qword [0x180094688], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetBinaryTypeW
mov rcx, rbx
mov qword [0x180094690], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetFullPathNameA
mov rcx, rbx
mov qword [0x180094698], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetFullPathNameW
mov rcx, rbx
mov qword [0x1800946a0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetLongPathNameA
mov rcx, rbx
mov qword [0x1800946a8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetLongPathNameW
mov rcx, rbx
mov qword [0x1800946b0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetShortPathNameA
mov rcx, rbx
mov qword [0x1800946b8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetShortPathNameW
mov rcx, rbx
mov qword [0x1800946c0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078a88]
mov rcx, rbx
mov qword [0x1800946c8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078a78]
mov rcx, rbx
mov qword [0x1800946d0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078a68]
mov qword [0x1800946d8], rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078a58]
mov rcx, rbx
mov qword [0x1800946e0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078a48]
mov rcx, rbx
mov qword [0x1800946e8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078a38]
mov rcx, rbx
mov qword [0x1800946f0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.MoveFileWithProgressA
mov rcx, rbx
mov qword [0x1800946f8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.MoveFileWithProgressW
mov rcx, rbx
mov qword [0x180094700], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800789f8]
mov rcx, rbx
mov qword [0x180094708], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800789e8]
mov rcx, rbx
mov qword [0x180094710], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CopyFileExA
mov rcx, rbx
mov qword [0x180094718], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CopyFileExW
mov rcx, rbx
mov qword [0x180094720], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CopyFile2
mov rcx, rbx
mov qword [0x180094728], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ReplaceFileA
mov rcx, rbx
mov qword [0x180094730], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ReplaceFileW
mov rcx, rbx
mov qword [0x180094738], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078980]
mov rcx, rbx
mov qword [0x180094740], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CreateFileMappingW
mov rcx, rbx
mov qword [0x180094748], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.OpenFileMappingA
mov rcx, rbx
mov qword [0x180094750], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.OpenFileMappingW
mov rcx, rbx
mov qword [0x180094758], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078928]
mov rcx, rbx
mov qword [0x180094760], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.MapViewOfFileEx
mov rcx, rbx
mov qword [0x180094768], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078908]
mov rcx, rbx
mov qword [0x180094770], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.FlushViewOfFile
mov rcx, rbx
mov qword [0x180094778], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800788e0]
mov rcx, rbx
mov qword [0x180094780], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800788c8]
mov rcx, rbx
mov qword [0x180094788], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CreateDirectoryExA
mov rcx, rbx
mov qword [0x180094790], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CreateDirectoryExW
mov rcx, rbx
mov qword [0x180094798], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078880]
mov rcx, rbx
mov qword [0x1800947a0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078868]
mov rcx, rbx
mov qword [0x1800947a8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078858]
mov rcx, rbx
mov qword [0x1800947b0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078848]
mov rcx, rbx
mov qword [0x1800947b8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.FindFirstFileExA
mov rcx, rbx
mov qword [0x1800947c0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.FindFirstFileExW
mov rcx, rbx
mov qword [0x1800947c8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078808]
mov rcx, rbx
mov qword [0x1800947d0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800787f8]
mov rcx, rbx
mov qword [0x1800947d8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800787e8]
mov rcx, rbx
mov qword [0x1800947e0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.K32GetMappedFileNameA
mov rcx, rbx
mov qword [0x1800947e8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.K32GetMappedFileNameW
mov rcx, rbx
mov qword [0x1800947f0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetFinalPathNameByHandleA
mov rcx, rbx
mov qword [0x1800947f8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetFinalPathNameByHandleW
mov rcx, rbx
mov qword [0x180094800], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078768]
mov rcx, rbx
mov qword [0x180094808], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078768]
mov rcx, rbx
mov qword [0x180094810], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CreateProcessInternalW
mov rcx, rbx
mov qword [0x180094818], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180094820], rax
lea rdx, [0x180078740]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180078728]
mov rcx, rbx
mov qword [0x180094828], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ProcessIdToSessionId
mov rcx, rbx
mov qword [0x180094830], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.OpenThread
mov rcx, rbx
mov qword [0x180094838], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.SwitchToThread
mov rcx, rbx
mov qword [0x180094840], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CreateToolhelp32Snapshot
mov rcx, rbx
mov qword [0x180094848], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Heap32First
mov rcx, rbx
mov qword [0x180094850], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Heap32ListFirst
mov rcx, rbx
mov qword [0x180094858], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Heap32ListNext
mov rcx, rbx
mov qword [0x180094860], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Heap32Next
mov rcx, rbx
mov qword [0x180094868], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Module32First
mov rcx, rbx
mov qword [0x180094870], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Module32FirstW
mov rcx, rbx
mov qword [0x180094878], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Module32Next
mov rcx, rbx
mov qword [0x180094880], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Module32NextW
mov rcx, rbx
mov qword [0x180094888], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Process32First
mov rcx, rbx
mov qword [0x180094890], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Process32FirstW
mov rcx, rbx
mov qword [0x180094898], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Process32Next
mov rcx, rbx
mov qword [0x1800948a0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Process32NextW
mov rcx, rbx
mov qword [0x1800948a8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Thread32First
mov rcx, rbx
mov qword [0x1800948b0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Thread32Next
mov rcx, rbx
mov qword [0x1800948b8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Toolhelp32ReadProcessMemory
mov qword [0x1800948c0], rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.K32GetProcessImageFileNameA
mov rcx, rbx
mov qword [0x1800948c8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.K32GetProcessImageFileNameW
mov rcx, rbx
mov qword [0x1800948d0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GlobalMemoryStatusEx
mov rcx, rbx
mov qword [0x1800948d8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.IsWow64Process
mov rcx, rbx
mov qword [0x1800948e0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Wow64DisableWow64FsRedirection
mov rcx, rbx
mov qword [0x1800948e8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Wow64EnableWow64FsRedirection
mov rcx, rbx
mov qword [0x1800948f0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.Wow64RevertWow64FsRedirection
mov rcx, rbx
mov qword [0x1800948f8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.WTSGetActiveConsoleSessionId
mov rcx, rbx
mov qword [0x180094900], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetProcessId
mov rcx, rbx
mov qword [0x180094908], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800784d8]
mov rcx, rbx
mov qword [0x180094910], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800784c8]
mov rcx, rbx
mov qword [0x180094918], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1800784b8]
mov rcx, rbx
mov qword [0x180094920], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetQueuedCompletionStatus
mov rcx, rbx
mov qword [0x180094928], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetUserDefaultUILanguage
mov rcx, rbx
mov qword [0x180094930], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetPackagePathByFullName
mov rcx, rbx
mov qword [0x180094938], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetPackageFullName
mov rcx, rbx
mov qword [0x180094940], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, qword [rsp + 0x20]
mov dword [0x180094954], 1
mov qword [0x180094948], rax
mov eax, 1
add rsp, 0x28
ret
mov eax, ecx
add rsp, 0x28
ret