Function at 0x4092a0
Capabilities:
Check os version
Copy file
Create directory
Create process on windows
Delete directory
Delete file
Get session user name
Print debug messages
Read .ini file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1bc0
call fcn.004189d0
mov eax, dword [0x42603c]
xor eax, esp
mov dword [esp + 0x1bbc], eax
push esi
push edi
push 0x426f4c
push 0xf9c270
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [0xf9c474], eax
mov eax, dword [ebp + 0x10]
mov edx, 0xf998c8
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4092e5
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push str.C:TempwmcInst.ini
push 0
push str.Time
push str.Debug
call esi
push str.C:TempwmcInst.ini
push 0
push 0x420180
push str.Debug
mov dword [0xf99cc8], eax
call esi
mov dword [0xf99ccc], eax
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x412]
push ecx
mov word [esp + 0x414], ax
call fcn.00413700
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea edx, [esp + 0x408]
push str.C:WindowsDebugWM7AutoUpdate
push edx
call esi
mov edi, dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
add esp, 8
push 0
lea eax, [esp + 0x40c]
push eax
push 0
call edi
lea ecx, [esp + 0x408]
push str.C:UsersPublicSMR7
push ecx
call esi
add esp, 8
push 0
lea edx, [esp + 0x40c]
push edx
push 0
call edi
mov eax, 0xf998c8
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4093a0
sub eax, edx
sar eax, 1
je 0x4096ed
push str._unrar
call fcn.004011a0
add esp, 4
cmp eax, 1
jne 0x4093fc
push str.Command_to_Write_Package_File__Client.cab_.
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov edx, 0x426f50
mov ecx, 0x420260
call fcn.00401950
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x1bbc]
xor ecx, esp
call fcn.0040f51e
mov esp, ebp
pop ebp
ret 0x10
push str._rar
call fcn.004011a0
add esp, 4
cmp eax, 1
jne 0x409e70
xor eax, eax
push 0x7fe
push eax
lea ecx, [esp + 0x13ca]
push ecx
xor edi, edi
mov word [esp + 0x13cc], ax
call fcn.00413700
add esp, 0xc
xor edx, edx
push 0x18e
push edx
lea eax, [esp + 0xe2a]
push eax
mov word [esp + 0xe2c], dx
call fcn.00413700
add esp, 0xc
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x61a]
push edx
mov word [esp + 0x61c], cx
call fcn.00413700
add esp, 0xc
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0xa1a]
push ecx
mov word [esp + 0xa1c], ax
call fcn.00413700
add esp, 0xc
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0xfba]
push eax
mov word [esp + 0xfbc], dx
call fcn.00413700
add esp, 0xc
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0xc22]
push edx
mov word [esp + 0xc24], cx
call fcn.00413700
add esp, 0xc
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x20a]
push ecx
mov word [esp + 0x20c], ax
call fcn.00413700
add esp, 0xc
push 0x104
lea edx, [esp + 0x614]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor eax, eax
lea ebx, [ebx]
movzx ecx, word [esp + eax + 0x610]
mov word [esp + eax + 0xa10], cx
add eax, 2
test cx, cx
jne 0x409510
lea eax, [esp + 0xa10]
push 0x5c
push eax
call fcn.0040fb74
add esp, 8
test eax, eax
je 0x409555
lea ecx, [esp + 0xa10]
push 0x5c
push ecx
call fcn.0040fb74
add esp, 8
xor edx, edx
mov word [eax], dx
lea eax, [esp + 0x610]
push 0x5c
push eax
call fcn.0040fb74
add eax, 2
lea edx, [esp + 0xfb8]
add esp, 8
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x409573
lea ecx, [esp + 0xfb0]
push 0x2e
push ecx
call fcn.0040fb74
add esp, 8
test eax, eax
je 0x4095af
lea edx, [esp + 0xfb0]
push 0x2e
push edx
call fcn.0040fb74
add esp, 8
xor ecx, ecx
mov word [eax], cx
lea edx, [esp + 0xfb0]
push edx
lea eax, [esp + 0xa14]
push eax
lea ecx, [esp + 0xc20]
push str._s_s_
push ecx
call esi
add esp, 0x10
push 0
lea edx, [esp + 0xc1c]
push edx
lea eax, [esp + 0x618]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x80
lea ecx, [esp + 0xc1c]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea edx, [esp + 0xa10]
push edx
lea eax, [esp + 0x204]
push str._sClient.cab
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x200]
push 0
push ecx
call fcn.0040fe88
add esp, 8
test eax, eax
jne 0x409695
lea edx, [esp + 0xc18]
push edx
lea ecx, [esp + 0x204]
call fcn.00401490
add esp, 4
test eax, eax
je 0x409695
xor eax, eax
lea esp, [esp]
movzx ecx, word [eax + 0x420260]
mov word [esp + eax + 0xe20], cx
add eax, 2
test cx, cx
jne 0x409650
lea eax, [esp + 0xe20]
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x409671
mov ecx, dword [0x4202c8]
mov dx, word [0x4202cc]
mov dword [eax], ecx
mov word [eax + 4], dx
mov edi, 1
lea eax, [esp + 0xc18]
push eax
push edi
lea ecx, [esp + 0xe28]
push ecx
lea edx, [esp + 0x13cc]
push str._s_r_n
push edx
call esi
add esp, 0x14
push 0x40040
push 0x42031c
lea eax, [esp + 0x13c8]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x1bbc]
xor ecx, esp
call fcn.0040f51e
mov esp, ebp
pop ebp
ret 0x10
call fcn.00407700
test eax, eax
jne 0x4097c4
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x20a]
push eax
mov word [esp + 0x20c], dx
call fcn.00413700
add esp, 0xc
xor ecx, ecx
push 0x3fe
push ecx
lea edx, [esp + 0x61a]
push edx
mov word [esp + 0x61c], cx
call fcn.00413700
add esp, 0xc
push 0x104
lea eax, [esp + 0x204]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
movzx ecx, word [esp + 0x16]
movzx edx, word [esp + 0x12]
movzx eax, word [esp + 0x10]
push ecx
push edx
push eax
lea ecx, [esp + 0x414]
push ecx
lea edx, [esp + 0x210]
push edx
lea eax, [esp + 0x624]
push str._c_echo____date_____time_____s___Initial_Path_Fail________s_04u__02u__02u_InitialFail.log_
push eax
call esi
add esp, 0x1c
push 5
push 0
lea ecx, [esp + 0x618]
push ecx
push str.cmd.exe
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x1bbc]
xor ecx, esp
call fcn.0040f51e
mov esp, ebp
pop ebp
ret 0x10
call fcn.00407be0
test eax, eax
jne 0x409876
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x20a]
push ecx
mov word [esp + 0x20c], ax
call fcn.00413700
add esp, 0xc
xor edx, edx
push 0x3fe
push edx
lea eax, [esp + 0x61a]
push eax
mov word [esp + 0x61c], dx
call fcn.00413700
add esp, 0xc
push 0x104
lea ecx, [esp + 0x204]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
movzx edx, word [esp + 0x16]
movzx eax, word [esp + 0x12]
movzx ecx, word [esp + 0x10]
push edx
push eax
push ecx
lea edx, [esp + 0x414]
push edx
lea eax, [esp + 0x210]
push eax
lea ecx, [esp + 0x624]
push str._c_echo____date_____time_____s___Test_Write_Log_Fail________s_04u__02u__02u_InitialFail.log_
push ecx
call esi
add esp, 0x1c
push 5
push 0
lea edx, [esp + 0x618]
push edx
jmp 0x40979a
push 0x11c
lea eax, [esp + 0x24]
push 0
push eax
call fcn.00413700
add esp, 0xc
lea ecx, [esp + 0x20]
push ecx
mov dword [esp + 0x24], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, dword [esp + 0x24]
cmp eax, 6
ja 0x4098e0
mov ecx, dword [esp + 0x28]
jne 0x40995f
test ecx, ecx
je 0x40995f
movzx edx, byte [esp + 0x13a]
push edx
push ecx
push 6
push 0x4204b4
push 0xf9b950
call esi
add esp, 0x14
push 0xf9b950
call fcn.00402950
add esp, 4
push str.GlobalwmcInst.exe
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
mov dword [0xf9c478], eax
test eax, eax
jne 0x409e4b
push str.GlobalwmcInst.exe
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0xf9c478], eax
test eax, eax
jne 0x40999e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0xf9c474]
push eax
push 0xf9c270
push 0x420530
push 0xf9b950
call esi
add esp, 0x14
push 0xf9b950
call fcn.00402950
add esp, 4
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x1bbc]
xor ecx, esp
call fcn.0040f51e
mov esp, ebp
pop ebp
ret 0x10
movzx edx, byte [esp + 0x13a]
push edx
push ecx
push eax
push str._d._d__d_
push 0xf9b950
call esi
add esp, 0x14
push 0xf9b950
call fcn.00402950
add esp, 4
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x1bbc]
xor ecx, esp
call fcn.0040f51e
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [0xf9c474]
push ecx
push 0xf9c270
push 0x420590
push 0xf9b950
call esi
push 0xf9b950
call fcn.00402950
add esp, 0x14
call fcn.00407f90
test eax, eax
je 0x409a01
push eax
push 0x420600
push 0xf9b950
call esi
add esp, 0xc
push 0xf9b950
call fcn.00402950
add esp, 4
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x1bbc]
xor ecx, esp
call fcn.0040f51e
mov esp, ebp
pop ebp
ret 0x10
mov ecx, str.Win_Win7
call fcn.004026a0
test eax, eax
jne 0x409a34
push str.uP_nW
call fcn.00402950
add esp, 4
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x1bbc]
xor ecx, esp
call fcn.0040f51e
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [0x426f63]
mov dword [0xf99ee4], eax
cmp eax, 0x400000
jae 0x409a7a
push eax
push 0x420668
push 0xf9b950
call esi
add esp, 0xc
push 0xf9b950
call fcn.00402950
add esp, 4
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x1bbc]
xor ecx, esp
call fcn.0040f51e
mov esp, ebp
pop ebp
ret 0x10
call fcn.00408250
push 0x4206ac
push 0xf9b950
mov dword [0xf9c26c], 0
call esi
push 0xf9b950
call fcn.00402950
add esp, 0xc
mov edx, 0x426f50
mov ecx, 0xf98a68
call fcn.00401950
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x11c2]
push eax
mov word [esp + 0x11c4], dx
call fcn.00413700
add esp, 0xc
push str.C:UsersPublicSMR7WM7installTemp
lea ecx, [esp + 0x11bc]
push str._sVersion.dat
push ecx
call esi
add esp, 0xc
call fcn.00402d70
lea edx, [esp + 0x11b8]
push edx
push 0xc
push 0xf9c150
push 0x41e784
push str.Version
push str.Install
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, 0xf9c150
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x409b20
sub eax, edx
sar eax, 1
cmp eax, 9
je 0x409b85
push 0x420704
call fcn.00402950
add esp, 4
push 0
push 0
push str.C:UsersPublicSMR7WM7installTemp
call fcn.00402410
add esp, 0xc
push str.C:UsersPublicSMR7WM7installTemp
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
push 0xf98a68
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
call fcn.00408340
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x1bbc]
xor ecx, esp
call fcn.0040f51e
mov esp, ebp
pop ebp
ret 0x10
push 0xf9c150
push 0x420738
push 0xf9b950
call esi
add esp, 0xc
push 0xf9b950
call fcn.00402950
add esp, 4
push 0
call fcn.00403090
add esp, 4
call fcn.00403550
call fcn.004048a0
call fcn.004010b0
test eax, eax
je 0x409bc8
call fcn.004054b0
cmp dword [0xf9c26c], 0
je 0x409bf3
call fcn.004046b0
cmp dword [0xf9c26c], 0
je 0x409bf3
push 0x420750
call fcn.00402950
add esp, 4
call fcn.00406250
jmp 0x409c05
push 0x42076c
call fcn.00402950
add esp, 4
call fcn.00405670
mov edi, eax
cmp edi, 1
jne 0x409cbe
push 0x420788
call fcn.00402950
add esp, 4
call fcn.00406db0
cmp dword [0xf9c26c], 0
je 0x409c32
call fcn.004070b0
jmp 0x409c37
call fcn.00406f50
xor eax, eax
push 0x7e
push eax
lea ecx, [esp + 0x18a]
push ecx
mov word [esp + 0x18c], ax
call fcn.00413700
add esp, 0xc
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx eax, word [esp + 0x1c]
movzx ecx, word [esp + 0x1a]
movzx edx, word [esp + 0x18]
push eax
movzx eax, word [esp + 0x1a]
push ecx
movzx ecx, word [esp + 0x1a]
push edx
movzx edx, word [esp + 0x1c]
push eax
push ecx
push edx
lea eax, [esp + 0x198]
push str._04u_02u_02u_02u_02u_02u
push eax
call esi
push 0x420798
call fcn.00402950
add esp, 0x24
push str.C:Program_FilesWW2017CFInfoPCInfo.opt
lea ecx, [esp + 0x184]
push ecx
push str.InstallDate
push str.Info
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
jmp 0x409ccb
push 0x420820
call fcn.00402950
add esp, 4
cmp dword [0xf9c26c], 0
je 0x409cd9
call fcn.00408380
call fcn.00409010
call fcn.00407420
push 0x42084c
call fcn.00402950
add esp, 4
call fcn.004072f0
push 1
call fcn.00403090
add esp, 4
mov ecx, 0x41e2a0
call fcn.004026a0
test eax, eax
jne 0x409d1f
push str.uP_nw
call fcn.00402950
add esp, 4
call fcn.004072f0
push 0
push 0
push str.C:UsersPublicSMR7WM7installTemp
call fcn.00402410
add esp, 0xc
push str.C:UsersPublicSMR7WM7installTemp
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
push 0xf98a68
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x42089c
call fcn.00402950
add esp, 4
xor edx, edx
push 0x3e
push edx
lea eax, [esp + 0x14a]
push eax
mov word [esp + 0x14c], dx
call fcn.00413700
add esp, 0xc
call fcn.004027f0
cmp edi, 1
jne 0x409dda
push 0xa
lea ecx, [esp + 0x144]
push ecx
push edx
push eax
call fcn.004109e3
add esp, 0x10
lea ecx, [esp + 0x140]
call fcn.00407550
cmp eax, edi
jne 0x409dbc
lea edx, [esp + 0x140]
push edx
push str.Record_Last_update.exe_File_Time___s__Success__
push 0xf9b950
call esi
add esp, 0xc
push 0xf9b950
jmp 0x409ddf
lea eax, [esp + 0x140]
push eax
push 0x420948
push 0xf9b950
call esi
add esp, 0xc
push 0xf9b950
jmp 0x409ddf
push 0x4209a8
call fcn.00402950
add esp, 4
call fcn.00407da0
mov esi, dword [sym.imp.SHELL32.dll_ShellExecuteW]
push 0
push 0x41e784
push str.__smr_run
push str.C:WindowsSysWOW64wmcUpdater.exe
push str.open
push 0
call esi
push 0
push 0x41e784
push str.__smr_run
push str.C:WindowsSystem32wmcUpdater.exe
push str.open
push 0
call esi
call fcn.00408340
cmp edi, 1
jne 0x409e37
push 0x420a70
jmp 0x409e3c
push 0x420a98
call fcn.00402950
add esp, 4
push 1
call fcn.004108f8
mov ecx, dword [0xf9c474]
push ecx
push 0xf9c270
push str.__s___u_
push 0xf9b950
call esi
push 0xf9b950
call fcn.00402950
add esp, 0x14
mov ecx, dword [esp + 0x1bc4]
pop edi
pop esi
xor ecx, esp
xor eax, eax
call fcn.0040f51e
mov esp, ebp
pop ebp
ret 0x10