Function at 0x1400574ec
Capabilities:
Check os version
Link many functions at runtime

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
lea rbp, [rax - 0x78]
sub rsp, 0x170
mov rax, qword [0x14008d310]
xor rax, rsp
mov qword [rbp + 0x68], rax
mov dword [rsp + 0x40], VarUI4FromDisp
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [rsp + 0x44], 6
jne 0x14005753b
cmp dword [rsp + 0x48], 1
jae 0x140057541
cmp dword [rsp + 0x44], 6
jbe 0x14005790a
lea rcx, str.kernelbase.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rbx, rax
xor edi, edi
test rax, rax
sete dil
test rax, rax
jne 0x140057575
call fcn.14005bd40
mov eax, edi
or eax, 0x80070000
test edi, edi
cmove eax, edi
jmp 0x140057cc3
lea rdx, [0x140069468]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
jne 0x1400575a8
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rbx, rax
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
lea rdx, [0x140069468]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008dfd8], rax
lea rdx, [0x1400694b8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008d410], rax
lea rdx, [0x1400694d8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008e988], rax
lea rdx, [0x1400694c8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008d3b0], rax
lea rdx, [0x1400694e8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008d3f0], rax
lea rdx, [0x140069510]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008d400], rax
lea rdx, [0x1400694f8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008d3f8], rax
lea rdx, [0x140069528]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008e9a0], rax
lea rdx, [0x1400686e0]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008d508], rax
lea rdx, [0x140069600]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14008e9c0]
test rax, rax
cmovne rcx, rax
mov qword [0x14008e9c0], rcx
lea rdx, [0x1400695e8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14008e9c8]
test rax, rax
cmovne rcx, rax
mov qword [0x14008e9c8], rcx
lea rdx, [0x140069548]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008e9d0], rax
lea rdx, [0x140069538]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008e9d8], rax
lea rdx, [0x140069568]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008e9b0], rax
lea rdx, [0x140069558]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008d520], rax
lea rdx, [0x140069588]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008dfc0], rax
lea rdx, [0x140069578]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008d428], rax
lea rdx, [0x1400695a8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008e9e0], rax
lea rdx, [0x140069598]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008d420], rax
lea rdx, [0x1400695d0]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
test rax, rax
sete dil
test rax, rax
je 0x14005755f
mov qword [0x14008e9f0], rax
lea rdx, [0x1400695b8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor ebx, ebx
test rax, rax
sete bl
test rax, rax
jne 0x140057903
call fcn.14005bd40
mov eax, ebx
or eax, 0x80070000
test ebx, ebx
cmove eax, ebx
jmp 0x140057cc3
mov qword [0x14008d418], rax
call fcn.1400282e0
mov ecx, eax
test eax, eax
je 0x140057927
movzx eax, cx
or eax, 0x80070000
test ecx, ecx
cmovle eax, ecx
jmp 0x140057cc3
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapLock]
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x20], xmm0
and qword [rsp + 0x30], 0
lea rcx, [rsp + 0x20]
call fcn.14005738c
mov edi, eax
test eax, eax
je 0x14005796d
call fcn.14005bd40
movzx ebx, di
or ebx, 0x80070000
test edi, edi
cmovle ebx, edi
jmp 0x140057c55
lea rdx, [0x14000cf00]
lea rcx, [0x14008dfd8]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x1400040a0]
lea rcx, [0x14008d410]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x140001ff8]
lea rcx, [0x14008e988]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [fcn.14000174c]
lea rcx, [0x14008d3b0]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x140001ab0]
lea rcx, [0x14008d3f0]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x140002148]
lea rcx, [0x14008d400]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x140001b98]
lea rcx, [0x14008d3f8]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x140056ac0]
lea rcx, [0x14008e990]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [fcn.140056b84]
lea rcx, [0x14008e998]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x140056c64]
lea rcx, [0x14008e9a0]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [fcn.140007248]
lea rcx, [0x14008d508]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x140056d44]
lea rcx, [0x14008e9c0]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [fcn.140056ea0]
lea rcx, [0x14008e9c8]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x140056f80]
lea rcx, [0x14008e9d0]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [fcn.140057044]
lea rcx, [0x14008e9d8]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x140057124]
lea rcx, [0x14008e9b0]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x140006400]
lea rcx, [0x14008d520]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x14000afb0]
lea rcx, [0x14008dfc0]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x140002530]
lea rcx, [0x14008d428]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x14005717c]
lea rcx, [0x14008e9e0]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x140002400]
lea rcx, [0x14008d420]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x140057254]
lea rcx, [0x14008e9f0]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x140002270]
lea rcx, [0x14008d418]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x140002148]
lea rcx, [0x14008d400]
call fcn.140018190
test eax, eax
jne 0x140057bf8
lea rdx, [0x140001b98]
lea rcx, [0x14008d3f8]
call fcn.140018190
test eax, eax
je 0x140057c0d
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
call fcn.14005bd40
jmp 0x140057c34
call fcn.140016508
test eax, eax
je 0x140057c26
and qword [rsp + 0x38], 0
lea rcx, [rsp + 0x38]
call fcn.14001650c
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov rsi, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x20]
cmp rdi, rsi
je 0x140057c5a
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rdi, 8
cmp rdi, rsi
jne 0x140057c43
mov rdi, qword [rsp + 0x20]
test rdi, rdi
je 0x140057cb2
mov rax, qword [rsp + 0x30]
sub rax, rdi
sar rax, 3
lea rdx, [rax*8]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140057c9b
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140057c9b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rdi
call fcn.140002da0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x20], xmm0
and qword [rsp + 0x30], 0
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapUnlock]
mov eax, ebx
mov rcx, qword [rbp + 0x68]
xor rcx, rsp
call fcn.140001020
lea r11, [rsp + 0x170]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret