Function at 0x85e210
Capabilities:
Check os version
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0xb14518
push 0xa847a0
mov eax, dword fs:[0]
push eax
sub esp, 0xa78
mov eax, dword [0xb196ec]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
xor ebx, ebx
mov dword [ebp - 0xa7c], ebx
mov dword [ebp - 0xa80], ebx
mov byte [ebp - 0x230], bl
push 0x103
push ebx
lea eax, [ebp - 0x22f]
push eax
call fcn.00a7ffb0
add esp, 0xc
mov byte [ebp - 0x128], bl
push 0x103
push ebx
lea ecx, [ebp - 0x127]
push ecx
call fcn.00a7ffb0
add esp, 0xc
mov byte [ebp - 0x338], bl
push 0x103
push ebx
lea edx, [ebp - 0x337]
push edx
call fcn.00a7ffb0
add esp, 0xc
mov byte [ebp - 0x858], bl
push 0x207
push ebx
lea eax, [ebp - 0x857]
push eax
call fcn.00a7ffb0
add esp, 0xc
mov byte [ebp - 0xa60], bl
push 0x207
push ebx
lea ecx, [ebp - 0xa5f]
push ecx
call fcn.00a7ffb0
add esp, 0xc
mov byte [ebp - 0x650], bl
push 0x103
push ebx
lea edx, [ebp - 0x64f]
push edx
call fcn.00a7ffb0
add esp, 0xc
mov dword [ebp - 0xa70], ebx
mov dword [ebp - 0xa6c], ebx
mov dword [ebp - 0xa64], ebx
mov dword [ebp - 0xa78], ebx
cmp dword [0xbfc9d0], ebx
je 0x85e326
mov eax, dword [0xbfc9d4]
mov dword [ebp - 0xa68], eax
jmp 0x85e351
mov esi, 1
mov dword [0xbfc9d0], esi
call dword [sym.imp.KERNEL32.dll_GetVersion]
test eax, eax
js 0x85e345
cmp al, 6
jb 0x85e345
mov dword [0xbfc9d4], esi
mov ecx, dword [0xbfc9d4]
mov dword [ebp - 0xa68], ecx
mov byte [ebp - 0x440], bl
push 0x103
push ebx
lea edx, [ebp - 0x43f]
push edx
call fcn.00a7ffb0
add esp, 0xc
mov byte [ebp - 0x548], bl
push 0x103
push ebx
lea eax, [ebp - 0x547]
push eax
call fcn.00a7ffb0
add esp, 0xc
mov dword [ebp - 4], ebx
call fcn.00968110
mov dword [ebp - 0xa84], eax
push 0x104
lea ecx, [ebp - 0x650]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea edx, [ebp - 0x650]
push edx
lea eax, [ebp - 0x440]
push eax
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
call esi
lea ecx, [ebp - 0x440]
call fcn.00960910
push str.drivers_avc3.sys
lea ecx, [ebp - 0x440]
push ecx
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
call edi
lea edx, [ebp - 0x650]
push edx
lea eax, [ebp - 0x548]
push eax
call esi
lea ecx, [ebp - 0x548]
call fcn.00960910
push str.drivers_avckf.sys
lea ecx, [ebp - 0x548]
push ecx
call edi
mov ecx, 0xb55508
lea edx, [ebp - 0x230]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
cmp al, bl
jne 0x85e410
cmp dword [ebp - 0xa84], ebx
je 0x85e4ec
lea edx, [ebp - 0xa6c]
push edx
call fcn.009681c0
add esp, 4
mov esi, eax
mov dword [ebp - 0xa70], esi
push 1
push ebx
xor edx, edx
lea ecx, [ebp - 0x440]
call fcn.0095a0f0
mov edi, eax
mov dword [ebp - 0xa88], edi
push 1
push ebx
xor edx, edx
lea ecx, [ebp - 0x548]
call fcn.0095a0f0
add esp, 0x10
mov dword [ebp - 0xa74], eax
cmp dword [ebp - 0xa68], ebx
je 0x85e4b5
lea eax, [ebp - 0x230]
push eax
push str._sAVC64_Win10_
lea ecx, [ebp - 0x128]
push ecx
call fcn.00a78f30
add esp, 0xc
lea ecx, [ebp - 0x128]
call fcn.0095a450
test eax, eax
jne 0x85e4d0
lea edx, [ebp - 0x230]
push edx
push str._sAVC64_
lea eax, [ebp - 0x128]
push eax
jmp 0x85e4c8
lea ecx, [ebp - 0x230]
push ecx
push str._sAVC64_
lea edx, [ebp - 0x128]
push edx
call fcn.00a78f30
add esp, 0xc
cmp esi, ebx
je 0x85e57f
mov eax, dword [ebp - 0xa6c]
push eax
call fcn.00968240
add esp, 4
jmp 0x85e57f
push 1
push ebx
xor edx, edx
lea ecx, [ebp - 0x440]
call fcn.0095a0f0
mov edi, eax
mov dword [ebp - 0xa88], edi
push 1
push ebx
xor edx, edx
lea ecx, [ebp - 0x548]
call fcn.0095a0f0
add esp, 0x10
mov dword [ebp - 0xa74], eax
cmp dword [ebp - 0xa68], ebx
je 0x85e564
lea ecx, [ebp - 0x230]
push ecx
push str._sAVC32_Win10_
lea edx, [ebp - 0x128]
push edx
call fcn.00a78f30
add esp, 0xc
lea ecx, [ebp - 0x128]
call fcn.0095a450
test eax, eax
jne 0x85e57f
lea eax, [ebp - 0x230]
push eax
push str._sAVC32_
lea ecx, [ebp - 0x128]
push ecx
jmp 0x85e577
lea edx, [ebp - 0x230]
push edx
push str._sAVC32_
lea eax, [ebp - 0x128]
push eax
call fcn.00a78f30
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x338]
push ecx
lea edx, [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
test eax, eax
je 0x85e810
mov eax, dword [ebp - 0xa64]
cmp eax, ebx
jne 0x85e5ee
cmp edi, ebx
jne 0x85e5b6
cmp dword [ebp - 0xa74], ebx
je 0x85e5c2
mov dword [ebp - 0xa64], 1
jmp 0x85e5ee
cmp eax, ebx
jne 0x85e5ee
mov ebx, str.avc3
call fcn.009605b0
test eax, eax
je 0x85e5e2
mov ebx, str.avckf
call fcn.009605b0
test eax, eax
jne 0x85e5ec
mov dword [ebp - 0xa64], 1
xor ebx, ebx
lea eax, [ebp - 0x338]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
cmp dword [ebp - 0xa84], ebx
je 0x85e618
lea ecx, [ebp - 0xa6c]
push ecx
call fcn.009681c0
add esp, 4
mov dword [ebp - 0xa70], eax
push 0x208
lea ebx, [ebp - 0x858]
lea esi, [ebp - 0x338]
call fcn.00957fa0
add esp, 4
cmp dword [ebp - 0xa64], 0
jne 0x85e650
mov ebx, str.avc3
call fcn.009605b0
test eax, eax
je 0x85e650
test edi, edi
je 0x85e701
lea edx, [ebp - 0x858]
push edx
push str._AVCI__Re_installing_AVC3.SYS_from__s
mov eax, dword [ebp - 0xa80]
push eax
call fcn.0096a780
add esp, 0xc
mov esi, dword [ebp - 0xa7c]
test esi, esi
je 0x85e68a
lea ecx, [ebp - 0x858]
push ecx
push str._AVCI__Re_installing_AVC3.SYS_from__s
push esi
call fcn.0096a780
add esp, 0xc
lea edx, [ebp - 0x338]
push edx
push str.rundll32.exe_setupapi.dll_InstallHinfSection_DefaultInstall_128__savc3.inf
lea eax, [ebp - 0xa60]
push eax
call fcn.00a78f30
add esp, 0xc
mov eax, 1
lea ecx, [ebp - 0xa60]
call fcn.0095d860
push 1
push 0
xor edx, edx
lea ecx, [ebp - 0x440]
call fcn.0095a0f0
add esp, 8
test eax, eax
jne 0x85e6d5
cmp dword [ebp - 0xa68], esi
je 0x85e6f5
lea ecx, [ebp - 0x338]
push ecx
lea esi, [ebp - 0x650]
mov edi, str.avc3.sys
call fcn.0099b0a0
add esp, 4
mov esi, dword [ebp - 0xa7c]
mov dword [ebp - 0xa78], 1
jmp 0x85e707
mov esi, dword [ebp - 0xa7c]
cmp dword [ebp - 0xa64], 0
jne 0x85e72b
mov ebx, str.avckf
call fcn.009605b0
test eax, eax
je 0x85e72b
cmp dword [ebp - 0xa74], 0
je 0x85e7ce
lea edx, [ebp - 0x858]
push edx
push str._AVCI__Re_installing_AVCKF.SYS_from__s
mov eax, dword [ebp - 0xa80]
push eax
call fcn.0096a780
add esp, 0xc
test esi, esi
je 0x85e75f
lea ecx, [ebp - 0x858]
push ecx
push str._AVCI__Re_installing_AVCKF.SYS_from__s
push esi
call fcn.0096a780
add esp, 0xc
lea edx, [ebp - 0x338]
push edx
push str.rundll32.exe_setupapi.dll_InstallHinfSection_DefaultInstall_128__savckf.inf
lea eax, [ebp - 0xa60]
push eax
call fcn.00a78f30
add esp, 0xc
mov eax, 1
lea ecx, [ebp - 0xa60]
call fcn.0095d860
push 1
push 0
xor edx, edx
lea ecx, [ebp - 0x548]
call fcn.0095a0f0
add esp, 8
test eax, eax
jne 0x85e7aa
cmp dword [ebp - 0xa68], eax
je 0x85e7c4
lea ecx, [ebp - 0x338]
push ecx
lea esi, [ebp - 0x650]
mov edi, str.avckf.sys
call fcn.0099b0a0
add esp, 4
mov dword [ebp - 0xa78], 1
cmp dword [ebp - 0xa70], 0
je 0x85e7e6
mov edx, dword [ebp - 0xa6c]
push edx
call fcn.00968240
add esp, 4
call fcn.0099add0
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0xa78]
jmp 0x85e819
mov dword [ebp - 4], 0xfffffffe
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret