Function at 0x407ae0
Capabilities:
Get common file path
Get file version info

Disassembly:
sub esp, 0x32c
mov eax, dword [0x4424ac]
xor eax, esp
mov dword [esp + 0x328], eax
push ebx
xor ebx, ebx
push 0x103
lea eax, [esp + 0x129]
push ebx
push eax
mov dword [esp + 0x14], ebx
mov byte [esp + 0x130], bl
call fcn.00418350
push 0x103
lea ecx, [esp + 0x31]
push ebx
push ecx
mov byte [esp + 0x38], bl
call fcn.00418350
push 0x103
lea edx, [esp + 0x245]
push ebx
push edx
mov byte [esp + 0x24c], bl
call fcn.00418350
add esp, 0x24
cmp byte [0x4439d4], bl
je 0x407eab
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0xc]
push ecx
push ebx
push 0x2001f
push ebx
push ebx
push ebx
push str.SYSTEMCurrentControlSetServicesWdf01000Parameters
push 0x80000002
mov dword [esp + 0x30], ebx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov edx, dword [esp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [esp + 0xc], 2
je 0x407eab
push 0x104
lea eax, [esp + 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
jne 0x407bc9
push str.Error_:_Get_windows_path_error_n
call fcn.00404950
add esp, 4
pop ebx
mov ecx, dword [esp + 0x328]
xor ecx, esp
call fcn.00417b3b
add esp, 0x32c
ret
push edi
lea edi, [esp + 8]
mov ecx, 0x104
lea edx, [esp + 0x128]
mov dword [esp + 8], ebx
call fcn.00401c40
xor ecx, ecx
cmp eax, ebx
setl cl
sub ecx, 1
and ecx, dword [esp + 8]
cmp eax, ebx
mov dword [esp + 0x14], ecx
je 0x407c05
cmp ecx, 0x102
ja 0x407eaa
lea eax, [ecx + 1]
cmp eax, 0x7ffffffe
ja 0x407eaa
push eax
push ebx
lea eax, [esp + 0x130]
mov ecx, 0x104
lea edx, [esp + 0x2c]
call fcn.00401c80
cmp eax, ebx
jne 0x407eaa
push esi
mov ecx, 0x104
lea eax, [esp + 0x28]
xor esi, esi
mov edi, edi
cmp byte [eax], bl
je 0x407c4e
add eax, 1
sub ecx, 1
jne 0x407c40
jmp 0x407c56
cmp ecx, ebx
jne 0x407d01
mov esi, 0x80070057
xor edx, edx
cmp esi, ebx
mov eax, esi
jl 0x407c7b
push 0x1f
mov ecx, 0x104
sub ecx, edx
push ebx
lea edx, [esp + edx + 0x30]
mov eax, str._system32driverswdf01000.sys
call fcn.00401c80
cmp eax, ebx
jne 0x407ea9
push ebx
lea ecx, [esp + 0x2c]
push ecx
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov esi, eax
push esi
call fcn.0040eecd
mov edi, eax
add esp, 4
cmp edi, ebx
je 0x407ea9
push esi
push ebx
push edi
call fcn.00418350
add esp, 0xc
push edi
push esi
push ebx
lea edx, [esp + 0x34]
push edx
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x407ce0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x10]
push ecx
push 0x42e478
push edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], ebx
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x407d0d
push edi
call fcn.0040eec8
add esp, 4
pop esi
pop edi
pop ebx
mov ecx, dword [esp + 0x328]
xor ecx, esp
call fcn.00417b3b
add esp, 0x32c
ret
mov edx, 0x104
sub edx, ecx
jmp 0x407c5d
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 8]
mov esi, dword [sym.imp.WS2_32.dll_htonl]
push ebp
push eax
call esi
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0xc]
mov ebx, eax
push edx
mov dword [esp + 0x28], ebx
call esi
mov esi, dword [sym.imp.WS2_32.dll_htons]
mov ebp, eax
shr eax, 0x10
push eax
mov dword [esp + 0x2c], ebp
call esi
movzx ecx, ax
push ecx
push ebp
call esi
movzx edx, ax
mov eax, dword [esp + 0x2a]
push edx
push eax
call esi
movzx ecx, ax
push ecx
push ebx
call esi
movzx edx, ax
push edx
push str._d_d_d_d
lea eax, [esp + 0x248]
push 0x104
push eax
call fcn.00402520
add esp, 0x1c
test eax, eax
pop ebp
je 0x407d8e
push str.DeleteBetaWdf107
push str._s_StringCbPrintf_FileVersion_err_n
call fcn.00404950
add esp, 8
lea ecx, [esp + 0x230]
push str.176001
push ecx
call fcn.00417550
add esp, 8
test eax, eax
push edi
je 0x407ce1
call fcn.0040eec8
push str._nInfo__:_Find_beta_wdf1.07__delete_it._n_n
call fcn.00404950
lea edx, [esp + 0x30]
push edx
call fcn.00401df0
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
add esp, 0xc
test al, al
jne 0x407de7
call edi
push eax
lea eax, [esp + 0x2c]
push eax
push str.Error_:_Remove_file___s__fail__err:__d_n
call fcn.00404950
add esp, 0xc
lea ecx, [esp + 0x18]
push ecx
push 0x104
lea edx, [esp + 0x134]
push edx
call fcn.004010d0
test eax, eax
mov eax, dword [esp + 0x18]
je 0x407e11
cmp eax, 0x102
ja 0x407ea9
add eax, 1
cmp eax, 0x7ffffffe
ja 0x407ea9
push eax
push 0
lea eax, [esp + 0x134]
mov ecx, 0x104
lea edx, [esp + 0x30]
call fcn.00401c80
test eax, eax
jne 0x407ea9
mov ecx, 0x104
lea eax, [esp + 0x28]
xor esi, esi
cmp byte [eax], 0
je 0x407e55
add eax, 1
sub ecx, 1
jne 0x407e46
jmp 0x407e59
test ecx, ecx
jne 0x407ec1
mov esi, 0x80070057
xor edx, edx
test esi, esi
mov eax, esi
jl 0x407e7f
push 0x1d
mov ecx, 0x104
sub ecx, edx
push 0
lea edx, [esp + edx + 0x30]
mov eax, str._system32driverswdfldr.sys
call fcn.00401c80
test eax, eax
jne 0x407ea9
lea eax, [esp + 0x28]
push eax
call fcn.00401df0
add esp, 4
test al, al
jne 0x407ea9
call edi
push eax
lea ecx, [esp + 0x2c]
push ecx
push str.Error_:_Remove_file___s__fail__err:__d_n
call fcn.00404950
add esp, 0xc
pop esi
pop edi
mov ecx, dword [esp + 0x32c]
pop ebx
xor ecx, esp
call fcn.00417b3b
add esp, 0x32c
ret
mov edx, 0x104
sub edx, ecx
jmp 0x407e60