Function at 0x48e170
Capabilities:
Accept command line arguments
Set environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2fc
mov eax, dword [0x718924]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x2f0], 0
call fcn.00484e60
call fcn.0048dec0
push str._UpdateSelf::WinMain_
push str.wWinMain
push 0x3a
push str.H:pub_9aqe_rc_2404Coding_supportwpsupdateUpdateClientupdateselfmain.cpp
push 7
call fcn.0048ffd0
mov eax, dword fs:[0x2c]
add esp, 0x14
mov ecx, dword [0x72249c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x720938]
cmp eax, dword [ecx + 4]
jg 0x48eaba
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push 1
call esi
push eax
mov ecx, 0x720918
call fcn.00475760
test eax, eax
jns 0x48e21d
push str.Invalid_Arg.
push str.wWinMain
push 0x3f
push str.H:pub_9aqe_rc_2404Coding_supportwpsupdateUpdateClientupdateselfmain.cpp
push 7
call fcn.0048ffd0
add esp, 0x14
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004cb998
mov esp, ebp
pop ebp
ret 0x10
lea eax, [ebp - 0x29c]
push 7
push eax
call fcn.00463760
add esp, 8
cmp dword [ebp - 0x28c], 0
je 0x48e257
cmp dword [ebp - 0x288], 8
lea eax, [ebp - 0x29c]
cmovae eax, dword [ebp - 0x29c]
push eax
push str.WPS_OFFICE6_ROOT_DIR
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push ebx
push edi
push str.needadmin
lea eax, [ebp - 0x2b4]
mov ecx, 0x720918
push eax
call fcn.00475560
push str.needadmin
mov ecx, 0x720918
call fcn.00475910
push 4
xor eax, eax
mov dword [ebp - 0x214], 0
push 0x67494c
lea ecx, [ebp - 0x224]
mov dword [ebp - 0x210], 7
mov word [ebp - 0x224], ax
call fcn.0044e920
push 0
lea eax, [ebp - 0x224]
mov ebx, 1
push eax
lea eax, [ebp - 0x2b4]
push eax
call fcn.0046fce0
add esp, 0xc
test al, al
jne 0x48e324
push ebx
xor eax, eax
mov dword [ebp - 0x22c], 0
push 0x674948
lea ecx, [ebp - 0x23c]
mov dword [ebp - 0x228], 7
mov word [ebp - 0x23c], ax
call fcn.0044e920
push 0
lea eax, [ebp - 0x23c]
mov ebx, 3
push eax
lea eax, [ebp - 0x2b4]
push eax
call fcn.0046fce0
add esp, 0xc
mov byte [ebp - 0x2e5], 0
test al, al
je 0x48e32b
mov byte [ebp - 0x2e5], 1
test bl, 2
je 0x48e390
mov edx, dword [ebp - 0x228]
and ebx, 0xfffffffd
cmp edx, 8
jb 0x48e373
mov ecx, dword [ebp - 0x23c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x48e369
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48eafa
push edx
push ecx
call fcn.004cb4db
add esp, 8
xor eax, eax
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 7
mov word [ebp - 0x23c], ax
mov edx, dword [ebp - 0x210]
and ebx, 0xfffffffe
cmp edx, 8
jb 0x48e3d3
mov ecx, dword [ebp - 0x224]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x48e3c9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48eafa
push edx
push ecx
call fcn.004cb4db
add esp, 8
cmp byte [ebp - 0x2e5], 0
je 0x48e500
call fcn.0046ae10
test al, al
jne 0x48e500
lea eax, [ebp - 0x224]
mov ecx, 0x720918
push eax
call fcn.004751f0
cmp dword [ebp - 0x210], 8
lea eax, [ebp - 0x20c]
push 0x208
push 0
lea esi, [ebp - 0x224]
cmovae esi, dword [ebp - 0x224]
push eax
call fcn.004e30c0
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor eax, eax
mov dword [ebp - 0x22c], 0
lea ecx, [ebp - 0x20c]
mov dword [ebp - 0x228], 7
mov word [ebp - 0x23c], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x48e462
sub ecx, edx
lea eax, [ebp - 0x20c]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x23c]
call fcn.0044e920
cmp dword [ebp - 0x228], 8
lea eax, [ebp - 0x23c]
push esi
cmovae eax, dword [ebp - 0x23c]
push eax
call fcn.0046b650
mov edx, dword [ebp - 0x228]
add esp, 8
mov esi, eax
cmp edx, 8
jb 0x48e4e4
mov ecx, dword [ebp - 0x23c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x48e4da
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48eaff
push edx
push ecx
call fcn.004cb4db
add esp, 8
lea ecx, [ebp - 0x224]
call fcn.00448fb0
xor eax, eax
mov edi, 0x15
test esi, esi
cmovns edi, eax
jmp 0x48ea8f
push 0x68219c
mov ecx, 0x720918
call fcn.00475680
mov ecx, 0x720918
test al, al
je 0x48e652
push dword [0x6800f4]
call fcn.00475680
test al, al
je 0x48e5bf
push dword [0x680110]
lea eax, [ebp - 0x2e4]
mov ecx, 0x720918
push dword [0x6800f4]
or ebx, 4
push eax
call fcn.00475560
push eax
call fcn.0044f420
add esp, 8
test al, al
jne 0x48e5b6
push dword [0x680138]
lea eax, [ebp - 0x23c]
mov ecx, 0x720918
push dword [0x6800f4]
or ebx, 8
push eax
call fcn.00475560
push eax
call fcn.0044f420
add esp, 8
test al, al
jne 0x48e5b6
push dword [0x68013c]
lea eax, [ebp - 0x224]
mov ecx, 0x720918
push dword [0x6800f4]
or ebx, 0x10
push eax
call fcn.00475560
push eax
call fcn.0044f420
add esp, 8
test al, al
je 0x48e5bf
mov byte [ebp - 0x2ec], 1
jmp 0x48e5c6
mov byte [ebp - 0x2ec], 0
test bl, 0x10
je 0x48e5d6
lea ecx, [ebp - 0x224]
call fcn.00448fb0
test bl, 8
je 0x48e5e6
lea ecx, [ebp - 0x23c]
call fcn.00448fb0
test bl, 4
je 0x48e5f6
lea ecx, [ebp - 0x2e4]
call fcn.00448fb0
push dword [ebp - 0x2ec]
lea ecx, [ebp - 0x2f0]
mov dword [ebp - 0x2f0], 0
call fcn.00486750
lea ecx, [ebp - 0x2f0]
mov edi, eax
call fcn.00486730
cmp byte [ebp - 0x2ec], 0
je 0x48e63a
push edi
call fcn.0048a070
add esp, 4
call fcn.004859d0
jmp 0x48ea8f
call fcn.00488c00
push eax
call fcn.00489080
add esp, 4
call fcn.004859d0
jmp 0x48ea8f
push 0x6821a0
lea eax, [ebp - 0x284]
push eax
call fcn.00475560
push str.exeparam
lea eax, [ebp - 0x26c]
mov ecx, 0x720918
push eax
call fcn.00475560
push str.dstdir
lea eax, [ebp - 0x2cc]
mov ecx, 0x720918
push eax
call fcn.00475560
cmp dword [ebp - 0x274], 0
jne 0x48e751
lea eax, [ebp - 0x2ec]
mov dword [ebp - 0x2ec], 0
push eax
call esi
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
cmp dword [ebp - 0x2ec], 2
mov esi, eax
jge 0x48e71c
push str.Invalid_Old_Arg.
push str.wWinMain
push 0x77
push str.H:pub_9aqe_rc_2404Coding_supportwpsupdateUpdateClientupdateselfmain.cpp
push 7
call fcn.0048ffd0
add esp, 0x14
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push str.inifile_name_is_empty
lea ecx, [ebp - 0x224]
call fcn.004514e0
lea eax, [ebp - 0x224]
push eax
push 0x5fff
call fcn.0048c8f0
add esp, 8
lea ecx, [ebp - 0x224]
call fcn.00448fb0
mov edi, 1
jmp 0x48ea6e
push dword [esi + 4]
lea ecx, [ebp - 0x284]
call fcn.004496a0
cmp dword [ebp - 0x2ec], 3
jl 0x48e74a
cmp dword [ebp - 0x25c], 0
jne 0x48e74a
push dword [esi + 8]
lea ecx, [ebp - 0x26c]
call fcn.004496a0
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [ebp - 0x258], 8
lea ecx, [ebp - 0x26c]
lea eax, [ebp - 0x284]
cmovae ecx, dword [ebp - 0x26c]
cmp dword [ebp - 0x270], 8
push ecx
cmovae eax, dword [ebp - 0x284]
push eax
push str.UpdateSelf:_ini___s__exeparam___s.
push str.wWinMain
push 0x83
push str.H:pub_9aqe_rc_2404Coding_supportwpsupdateUpdateClientupdateselfmain.cpp
push 7
call fcn.0048ffd0
xor eax, eax
mov dword [ebp - 0x2fc], 0
cmp dword [ebp - 0x270], 8
lea ecx, [ebp - 0x254]
push ecx
lea ecx, [ebp - 0x2fc]
mov word [ebp - 0x254], ax
push ecx
lea ecx, [ebp - 0x2cc]
mov dword [ebp - 0x2f8], 0
lea eax, [ebp - 0x284]
mov dword [ebp - 0x2f4], 0
cmovae eax, dword [ebp - 0x284]
push ecx
push eax
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x240], 7
call fcn.0048bae0
mov edi, eax
add esp, 0x2c
test edi, edi
jne 0x48e930
lea eax, [ebp - 0x2fc]
push eax
call fcn.0048d000
mov edi, eax
add esp, 4
test edi, edi
jne 0x48e930
push str._UpdateSelf::Execute_
push str.wWinMain
push 0x90
push str.H:pub_9aqe_rc_2404Coding_supportwpsupdateUpdateClientupdateselfmain.cpp
push 7
call fcn.0048ffd0
add esp, 0x14
cmp dword [ebp - 0x244], edi
je 0x48e92e
push str.updatefrompro2plus
mov ecx, 0x720918
call fcn.00475680
test al, al
lea ecx, [ebp - 0x26c]
lea eax, [ebp - 0x254]
je 0x48e8cd
cmp dword [ebp - 0x258], 8
cmovae ecx, dword [ebp - 0x26c]
cmp dword [ebp - 0x240], 8
push ecx
cmovae eax, dword [ebp - 0x254]
push eax
call fcn.0046b650
mov esi, eax
add esp, 8
test esi, esi
jns 0x48e902
push str.RunElevated_fail
lea ecx, [ebp - 0x224]
call fcn.004514e0
lea eax, [ebp - 0x224]
push eax
push esi
call fcn.0048c8f0
add esp, 8
lea ecx, [ebp - 0x224]
call fcn.00448fb0
mov edi, 7
jmp 0x48e930
cmp dword [ebp - 0x258], 8
push 0
cmovae ecx, dword [ebp - 0x26c]
cmp dword [ebp - 0x240], 8
push ecx
cmovae eax, dword [ebp - 0x254]
push eax
call fcn.0046bdf0
mov esi, eax
add esp, 0xc
test esi, esi
jns 0x48e902
push str.RunProcess_fail
jmp 0x48e8a0
push str.success
lea ecx, [ebp - 0x224]
call fcn.004514e0
lea eax, [ebp - 0x224]
push eax
push 0
call fcn.0048c8f0
add esp, 8
lea ecx, [ebp - 0x224]
call fcn.00448fb0
xor edi, edi
mov edx, dword [ebp - 0x240]
cmp edx, 8
jb 0x48e970
mov ecx, dword [ebp - 0x254]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x48e966
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48eb04
push edx
push ecx
call fcn.004cb4db
add esp, 8
mov esi, dword [ebp - 0x2fc]
xor eax, eax
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x240], 7
mov word [ebp - 0x254], ax
test esi, esi
je 0x48ea6e
mov ebx, dword [ebp - 0x2f8]
cmp esi, ebx
je 0x48ea0c
add esi, 0x2c
mov ecx, dword [esi]
cmp ecx, 8
jb 0x48e9e1
mov eax, dword [esi - 0x14]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x48e9d7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48eb04
mov eax, edx
push ecx
push eax
call fcn.004cb4db
add esp, 8
xor eax, eax
mov dword [esi - 4], 0
lea ecx, [esi - 0x2c]
mov dword [esi], 7
mov word [esi - 0x14], ax
call fcn.00448fb0
add esi, 0x34
lea eax, [esi - 0x2c]
cmp eax, ebx
jne 0x48e9a8
mov esi, dword [ebp - 0x2fc]
mov ecx, dword [ebp - 0x2f4]
mov eax, 0x4ec4ec4f
sub ecx, esi
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
imul ecx, eax, 0x34
mov eax, esi
cmp ecx, 0x1000
jb 0x48ea46
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48eb04
push ecx
push esi
call fcn.004cb4db
add esp, 8
mov dword [ebp - 0x2fc], 0
mov dword [ebp - 0x2f8], 0
mov dword [ebp - 0x2f4], 0
lea ecx, [ebp - 0x2cc]
call fcn.00448fb0
lea ecx, [ebp - 0x26c]
call fcn.00448fb0
lea ecx, [ebp - 0x284]
call fcn.00448fb0
lea ecx, [ebp - 0x2b4]
call fcn.00448fb0
lea ecx, [ebp - 0x29c]
call fcn.00448fb0
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop ebx
xor ecx, ebp
pop esi
call fcn.004cb998
mov esp, ebp
pop ebp
ret 0x10
push 0x720938
call fcn.004cb872
add esp, 4
cmp dword [0x720938], 0xffffffff
jne 0x48e1d2
mov ecx, 0x720918
call fcn.004750d0
push 0x6729e0
call fcn.004cb72a
push 0x720938
call fcn.004cb828
add esp, 8
jmp 0x48e1d2
call fcn.004e6589
call fcn.004e6589
call fcn.004e6589
int3