Function at 0x1800094d0
Capabilities:
Check os version
Extract resource via kernel32 functions
Link many functions at runtime

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x210]
sub rsp, 0x310
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rsp + 0x360], rbx
mov rax, qword [0x18002e010]
xor rax, rsp
mov qword [rbp + 0x200], rax
mov r13, rdx
mov rsi, rcx
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x1f0], xmm0
movdqa xmm1, xmmword [0x180028210]
movdqu xmmword [rbp + 0x1f0], xmm1
xor edi, edi
mov word [rbp + 0x1e0], di
lea r8d, [rdi + 0xc]
lea rdx, str.Advapi32.dll
lea rcx, [rbp + 0x1e0]
call fcn.180003080
nop
call fcn.18000ad10
mov rcx, rax
lea rdx, [rbp + 0x1e0]
call fcn.18000adb0
mov rbx, rax
mov rdx, qword [rbp + 0x1f8]
cmp rdx, 8
jb 0x1800095ac
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x1e0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800095a7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180009a19
call fcn.18000c054
movdqa xmm0, xmmword [0x180028210]
movdqu xmmword [rbp + 0x1f0], xmm0
mov word [rbp + 0x1e0], di
test rbx, rbx
je 0x1800099e7
lea rdx, [0x180027828]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r14, rax
lea rdx, str.SetTokenInformation
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r12, rax
test r14, r14
je 0x1800099e7
test rax, rax
je 0x1800099e7
lea rdx, str.ConvertStringSidToSidW
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
mov qword [rsp + 0x30], rax
lea rdx, str.DuplicateTokenEx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r15, rax
test rdi, rdi
je 0x1800099e7
test rax, rax
je 0x1800099e7
xor edx, edx
mov r8d, 0x118
lea rcx, [rbp - 0x5c]
call fcn.18000dba0
mov dword [rbp - 0x60], 0x11c
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x18000977a
cmp dword [rbp - 0x5c], 6
ja 0x180009681
jne 0x18000971f
cmp dword [rbp - 0x58], 2
jb 0x18000971f
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rbx, rax
test rax, rax
je 0x18000971f
mov edx, 1
lea r8d, [rdx + 0xf]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindResourceW]
test rax, rax
je 0x18000971f
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x18000971f
movups xmm0, xmmword [0x180027b00]
movups xmmword [rbp + 0x1e0], xmm0
movups xmm1, xmmword [0x180027b10]
movups xmmword [rbp + 0x1f0], xmm1
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbx, rax
test rax, rax
je 0x18000971f
lea rcx, [rax + 6]
lea rdx, [rbp + 0x1e0]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x18000971f
cmp word [rbx + 2], ax
jbe 0x18000971f
movzx edx, word [rbx + 0x32]
movzx eax, word [rbx + 0x30]
movzx ecx, word [rbx + 0x36]
mov dword [rbp - 0x5c], edx
mov dword [rbp - 0x58], eax
mov dword [rbp - 0x54], ecx
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea rdx, str.RtlGetVersion
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
je 0x18000977a
xor edx, edx
mov r8d, 0x118
lea rcx, [rbp + 0xc4]
call fcn.18000dba0
mov dword [rbp + 0xc0], 0x11c
lea rcx, [rbp + 0xc0]
call rbx
mov ecx, dword [rbp - 0x54]
test eax, eax
cmove ecx, dword [rbp + 0xcc]
mov dword [rbp - 0x54], ecx
mov rcx, rsi
cmp dword [rbp - 0x5c], 6
jae 0x180009790
mov rdx, r13
call fcn.180009380
jmp 0x1800099e9
xor ebx, ebx
mov qword [rsp + 0x48], rbx
mov dword [rsp + 0x40], ebx
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [rbx + 0x19]
call r14
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x1800099e7
mov ecx, dword [rsp + 0x40]
call fcn.18000ca90
mov rdi, rax
test rax, rax
je 0x1800099e7
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov r9d, dword [rsp + 0x40]
mov r8, rdi
lea edx, [rbx + 0x19]
mov rcx, rsi
call r14
test eax, eax
jne 0x180009801
mov rcx, rdi
call fcn.18000c054
jmp 0x1800099e7
mov rax, qword [rdi]
test rax, rax
je 0x1800097f4
cmp dword [rax + 8], 0x3000
je 0x18000985e
mov qword [rsp + 0x58], rbx
mov dword [rsp + 0x70], 8
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov r9d, 8
lea r8, [rsp + 0x58]
lea edx, [r9 + 0xb]
mov rcx, rsi
call r14
test eax, eax
je 0x1800097f4
mov rbx, qword [rsp + 0x58]
xor r14d, r14d
mov qword [rsp + 0x58], r14
mov rax, rbx
test rbx, rbx
cmove rax, rsi
mov rsi, rax
jmp 0x180009861
xor r14d, r14d
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 1
mov r9d, 2
xor r8d, r8d
mov edx, 0xf01ff
mov rcx, rsi
call r15
test eax, eax
je 0x1800099d1
cmp qword [rsp + 0x48], 0
je 0x1800099d1
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x78], xmm0
movdqa xmm1, xmmword [0x180028210]
movdqu xmmword [rbp - 0x78], xmm1
mov word [rsp + 0x78], r14w
mov r8d, 0xc
lea rdx, str.S_1_16_12288
lea rcx, [rsp + 0x78]
call fcn.180003080
nop
mov qword [rsp + 0x50], r14
xor eax, eax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rcx, qword [rsp + 0x78]
lea rdx, [rsp + 0x50]
call qword [rsp + 0x30]
test eax, eax
je 0x180009929
mov dword [rsp + 0x68], 0x20
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x60], rax
mov r9d, 0x10
lea r8, [rsp + 0x60]
lea edx, [r9 + 9]
mov rcx, qword [rsp + 0x48]
call r12
test eax, eax
jne 0x18000994e
mov rcx, rdi
call fcn.18000c054
test rbx, rbx
je 0x18000993f
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor bl, bl
jmp 0x18000997c
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x180009963
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov qword [rsp + 0x50], r14
test rbx, rbx
je 0x180009971
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rsp + 0x48]
mov qword [r13], rax
mov bl, 1
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x1800099b9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800099b4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180009a13
call fcn.18000c054
movdqa xmm0, xmmword [0x180028210]
movdqu xmmword [rbp - 0x78], xmm0
mov word [rsp + 0x78], r14w
movzx eax, bl
jmp 0x1800099e9
mov rcx, rdi
call fcn.18000c054
test rbx, rbx
je 0x1800099e7
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
mov rcx, qword [rbp + 0x200]
xor rcx, rsp
call fcn.18000c030
mov rbx, qword [rsp + 0x360]
add rsp, 0x310
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1800101e4
int3
call fcn.1800101e4
int3