Function at 0x1010ab30
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x10291e4f
mov eax, dword fs:[0]
push eax
sub esp, 0x90
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1037c990]
xor eax, esp
push eax
lea eax, [esp + 0xa4]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], 0xa
mov dword [esp + 0xac], ebx
lea eax, [esp + 0x20]
push eax
call fcn.101de3d0
cmp dword [esp + 0x28], ebx
je 0x1010ae42
lea ecx, [esp + 0x9c]
mov dword [esp + 0x60], ecx
lea ebp, [ebx + 7]
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x24]
call fcn.100d90c0
mov byte [esp + 0xac], 1
mov eax, dword [eax + 0x18]
sub eax, 0x10
push eax
call fcn.10004780
add eax, 0x10
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0xac], 5
mov eax, dword [esp + 0x9c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1010abfe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xac], 4
lea ecx, [esp + 0x84]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
call fcn.10106890
cmp dword [eax + 0x1c], 6
jl 0x1010acea
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x74], esp
push 0x12
xor edx, edx
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push str..NVFileAction.cpp
mov word [ecx + 4], dx
call fcn.10035ce0
mov byte [esp + 0xc8], 9
push 0x3d0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x98], esp
push 0x26
xor eax, eax
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push str.CNVFileAction::ImplicitCreateDirectory
mov word [ecx + 4], ax
call fcn.10035ce0
mov byte [esp + 0xe8], 0xa
lea ecx, [esp + 0x53]
lea edx, [esp + 0x8c]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x78], edx
lea eax, [esp + 0x58]
lea ecx, [esp + 0x74]
lea edx, [esp + 0x84]
push 6
mov byte [esp + 0x57], bl
mov dword [esp + 0x78], str.Writing_delete_folder_entry_for_implicit_directory
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x80], 0x102c7a4c
mov dword [esp + 0x84], edx
call fcn.10106890
push eax
mov byte [esp + 0xf0], 4
lea edi, [esp + 0x84]
call fcn.10002b50
mov dword [esp + 0x18], ebx
mov byte [esp + 0xac], 0xc
lea eax, [esp + 0x18]
push eax
push 0x102c3d18
call fcn.100b9ae0
cmp eax, ebx
jl 0x1010ae70
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x24]
push ebp
push eax
call edx
cmp eax, ebx
jl 0x1010ae81
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
add eax, 0xfffffff0
push eax
call fcn.10004780
add eax, 0x10
add esp, 4
mov dword [esp + 0x64], eax
mov byte [esp + 0xac], 0xe
lea eax, [esp + 0x6c]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov byte [esp + 0xac], 0xf
mov dword [esp + 0x7c], 1
mov byte [esp + 0xac], 0x10
cmp dword [esp + 0x7c], ebx
je 0x1010ad99
lea ecx, [esp + 0x64]
call fcn.100039a0
movzx ecx, word [eax]
cmp cx, bx
je 0x1010ad99
cmp cx, 1
je 0x1010ad99
cmp cx, 8
sete cl
cmp cl, bl
je 0x1010ae92
mov eax, dword [eax + 8]
jmp 0x1010ad9b
xor eax, eax
mov ecx, dword [esi]
mov edx, dword [ecx + 0x3c]
push eax
push esi
call edx
cmp eax, ebx
jl 0x1010aea7
mov byte [esp + 0xac], 0x11
lea eax, [esp + 0x6c]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov byte [esp + 0xac], 0xc
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1010ade7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xb4]
push ecx
push edx
call fcn.100d59a0
mov byte [esp + 0xac], 4
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x1010ae11
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0xac], bl
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1010ae38
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x28], ebx
jne 0x1010aba4
mov dword [esp + 0xac], 0xffffffff
lea ecx, [esp + 0x20]
call fcn.10091d30
mov ecx, dword [esp + 0xa4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret
push ebx
push 0x3d2
push 0x102cdd78
push eax
call fcn.100048f0
push ebx
push 0x3d3
push 0x102cdd78
push eax
call fcn.100048f0
push ebx
push 0xb7
push str.c:dvsp4_build_sw_relgpu_drvinstaller_coreincAutoString.h
push 0xe0e00000
call fcn.100048f0
push ebx
push 0x3d4
push 0x102cdd78
push eax
call fcn.100048f0
int3