Function at 0x430290
Capabilities:
Accept command line arguments
Check if file exists
Create process on windows
Delete file
Delete registry key
Get common file path
Move file
Read .ini file
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c944a
mov eax, dword fs:[0]
push eax
mov eax, 0x3b0c
call fcn.004939a0
mov eax, dword [0x50545c]
xor eax, ebp
mov dword [ebp - 0x2c], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x3acc], ecx
push 0
call fcn.00456af4
add esp, 4
push 1
mov ecx, dword [ebp - 0x3acc]
call fcn.004300d0
lea eax, [ebp - 0x37e8]
push eax
call fcn.0042f940
add esp, 4
mov dword [ebp - 0x3ad0], eax
mov ecx, dword [ebp - 0x3ad0]
mov dword [ebp - 0x3ad4], ecx
mov dword [ebp - 4], 0
push str.Silentupdate.log
mov edx, dword [ebp - 0x3ad4]
push edx
lea eax, [ebp - 0x37ec]
push eax
call fcn.0040f270
add esp, 0xc
mov dword [ebp - 0x3864], eax
mov ecx, dword [ebp - 0x3864]
mov edx, dword [ecx]
mov dword [ebp - 0x3868], edx
push 0x104
mov eax, dword [ebp - 0x3868]
push eax
push 0x5069f0
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea ecx, [ebp - 0x37ec]
call fcn.004129d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x37e8]
call fcn.004129d0
push str._______Silent_Upgrade_start_________
call fcn.0042fb40
add esp, 4
mov dword [ebp - 0x14], 0
call fcn.00426c70
test eax, eax
je 0x43042b
push str._CShareFunction::IsVista_return_TRUE
call fcn.0042fb40
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x1488]
call fcn.00412290
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x1488]
push ecx
push str.GetCommandLine___s
call fcn.0042fb40
add esp, 8
push 0
push str.runasadmin
lea ecx, [ebp - 0x1488]
call fcn.0040ee60
cmp eax, 0xffffffff
je 0x430419
push 0
push 0
call fcn.00426cd0
add esp, 8
push str._32
call fcn.0042fb40
add esp, 4
mov dword [ebp - 0x37f0], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1488]
call fcn.004129d0
mov eax, dword [ebp - 0x37f0]
jmp 0x431bec
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1488]
call fcn.004129d0
mov ecx, dword [ebp - 0x3acc]
call fcn.0042fe80
mov dword [ebp - 0x28], eax
xor edx, edx
mov word [ebp - 0x1474], dx
push 0x208
push 0
lea eax, [ebp - 0x1472]
push eax
call fcn.004931a0
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x1474]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
lea edx, [ebp - 0x1474]
push edx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x1478], eax
cmp dword [ebp - 0x1478], 0
je 0x430498
xor eax, eax
mov ecx, dword [ebp - 0x1478]
mov word [ecx + 2], ax
cmp dword [ebp - 0x28], 0
je 0x430630
push str.UpdatePatch64.exe
push 0x105
lea edx, [ebp - 0x1474]
push edx
call fcn.004950dd
add esp, 0xc
mov dword [ebp - 0x14ac], 0
lea ecx, [ebp - 0x14a0]
call fcn.00452618
mov dword [ebp - 4], 2
push 0
lea eax, [ebp - 0x1474]
push eax
lea ecx, [ebp - 0x14a0]
call fcn.004526d5
test eax, eax
je 0x430504
mov dword [ebp - 0x14ac], 1
lea ecx, [ebp - 0x14a0]
call fcn.00452139
cmp dword [ebp - 0x14ac], 0
jne 0x43051c
push str._UpdatePatch64.exe_not_exist
call fcn.0042fb40
add esp, 4
jmp 0x430536
push 5
push 0
push 0
lea ecx, [ebp - 0x1474]
push ecx
push 0x4d3aa0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
call fcn.0044fb81
push eax
lea ecx, [ebp - 0x14a4]
call fcn.00412940
mov byte [ebp - 4], 3
push 0x104
push 0x104
lea ecx, [ebp - 0x14a4]
call fcn.00445160
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x14a4]
call fcn.00425740
mov edx, dword [ebp - 0x14a4]
mov dword [ebp - 0x389c], edx
push 0x5c
mov eax, dword [ebp - 0x389c]
push eax
call fcn.00494159
add esp, 8
mov dword [ebp - 0x3898], eax
cmp dword [ebp - 0x3898], 0
jne 0x4305ae
mov dword [ebp - 0x3ad8], 0xffffffff
jmp 0x4305c2
mov ecx, dword [ebp - 0x3898]
sub ecx, dword [ebp - 0x14a4]
sar ecx, 1
mov dword [ebp - 0x3ad8], ecx
mov edx, dword [ebp - 0x3ad8]
add edx, 1
push edx
lea eax, [ebp - 0x14a8]
push eax
lea ecx, [ebp - 0x14a4]
call fcn.0040f0f0
push 4
push 0
mov ecx, dword [ebp - 0x14a4]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov dword [ebp - 0x37f4], 0
lea ecx, [ebp - 0x14a8]
call fcn.004129d0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14a4]
call fcn.004129d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14a0]
call fcn.00452641
mov eax, dword [ebp - 0x37f4]
jmp 0x431bec
push str.CUpdatePatchApp::InitInstance_______________enter
call fcn.0042fb40
add esp, 4
push 0
mov ecx, dword [ebp - 0x3acc]
call fcn.00441dd0
push str.StopProtectFilelock::StopProtectFilelock___End
call fcn.0042fb40
add esp, 4
lea edx, [ebp - 0x37f8]
push edx
mov ecx, 0x506c08
call fcn.00432f50
mov dword [ebp - 0x3adc], eax
mov eax, dword [ebp - 0x3adc]
mov dword [ebp - 0x3ae0], eax
mov dword [ebp - 4], 4
push str.UpdatePatch.ini
mov ecx, dword [ebp - 0x3ae0]
push ecx
lea edx, [ebp - 0x37fc]
push edx
call fcn.0040f270
add esp, 0xc
mov dword [ebp - 0x38a8], eax
mov eax, dword [ebp - 0x38a8]
mov ecx, dword [eax]
mov dword [ebp - 0x38ac], ecx
mov edx, dword [ebp - 0x38ac]
push edx
push 0
push str.dsip
push 0x4d450c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x1250], eax
lea ecx, [ebp - 0x37fc]
call fcn.004129d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x37f8]
call fcn.004129d0
push str.C:ESTSIPEstSip.exe
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x1250], 0
jne 0x430739
cmp dword [ebp - 0x24], 0
jne 0x430739
push str.EstMsAddin.MSWord
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
push str.EstMsAddin.MSExcel
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
push str.EstMsAddin.MSPowerPoint
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
push 0x104
lea eax, [ebp - 0xa3c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0xa3c]
push ecx
push 0x4d2d7c
mov edx, dword [ebp - 0x3acc]
add edx, 0xf0
push edx
call fcn.00413630
add esp, 0xc
mov eax, dword [ebp - 0x3acc]
add eax, 0xf0
mov dword [ebp - 0x38c4], eax
mov ecx, dword [ebp - 0x38c4]
mov edx, dword [ecx]
mov dword [ebp - 0x38bc], edx
push 0x5c
mov eax, dword [ebp - 0x38bc]
push eax
call fcn.00494159
add esp, 8
mov dword [ebp - 0x38b8], eax
cmp dword [ebp - 0x38b8], 0
jne 0x4307b9
mov dword [ebp - 0x3ae4], 0xffffffff
jmp 0x4307db
mov ecx, dword [ebp - 0x38c4]
mov edx, dword [ecx]
mov dword [ebp - 0x38c0], edx
mov eax, dword [ebp - 0x38b8]
sub eax, dword [ebp - 0x38c0]
sar eax, 1
mov dword [ebp - 0x3ae4], eax
mov ecx, dword [ebp - 0x3ae4]
add ecx, 1
push ecx
lea edx, [ebp - 0x3800]
push edx
mov ecx, dword [ebp - 0x3acc]
add ecx, 0xf0
call fcn.0040f0f0
mov dword [ebp - 0x3ae8], eax
mov eax, dword [ebp - 0x3ae8]
mov dword [ebp - 0x38cc], eax
mov dword [ebp - 4], 5
mov ecx, dword [ebp - 0x3acc]
add ecx, 0xf0
mov dword [ebp - 0x38c8], ecx
mov edx, dword [ebp - 0x38cc]
push edx
mov ecx, dword [ebp - 0x38c8]
call fcn.00412a10
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3800]
call fcn.004129d0
call fcn.0044fb81
push eax
lea ecx, [ebp - 0x834]
call fcn.00412940
mov dword [ebp - 4], 6
push str.config.ini
mov eax, dword [ebp - 0x3acc]
add eax, 0xf0
push eax
lea ecx, [ebp - 0x3804]
push ecx
call fcn.0040f270
add esp, 0xc
mov dword [ebp - 0x3aec], eax
mov edx, dword [ebp - 0x3aec]
mov dword [ebp - 0x38d4], edx
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x38d4]
push eax
lea ecx, [ebp - 0x834]
call fcn.00412a10
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x3804]
call fcn.004129d0
mov ecx, dword [ebp - 0x3acc]
mov dword [ecx + 0xd8], 0
call fcn.0044fb81
push eax
lea ecx, [ebp - 0x125c]
call fcn.00412940
mov byte [ebp - 4], 8
push str.ClientEstConfig.ini
mov edx, dword [ebp - 0x3acc]
add edx, 0xf0
push edx
lea eax, [ebp - 0x3808]
push eax
call fcn.0040f270
add esp, 0xc
mov dword [ebp - 0x3af0], eax
mov ecx, dword [ebp - 0x3af0]
mov dword [ebp - 0x38dc], ecx
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x38dc]
push edx
lea ecx, [ebp - 0x125c]
call fcn.00412a10
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x3808]
call fcn.004129d0
mov eax, dword [ebp - 0x3acc]
mov ecx, dword [eax + 0xf0]
push ecx
push str._InitInstance::m_strModulePath___s_
call fcn.0042fb40
add esp, 8
mov edx, dword [ebp - 0x125c]
mov dword [ebp - 0x38e4], edx
mov eax, dword [ebp - 0x38e4]
push eax
push 0
push str.STATE
push str.JIKE
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x1258], eax
cmp dword [ebp - 0x1258], 1
jne 0x430a26
push str.FE719EF9_77FC_47B8_AA16_BE550D607B9A
lea ecx, [ebp - 0x14b8]
call fcn.00412440
mov byte [ebp - 4], 0xa
push str.2AF877D3_068F_4968_AAD3_23E8EBED0D02
lea ecx, [ebp - 0x14b4]
call fcn.00412440
mov byte [ebp - 4], 0xb
push str.31B82730_265A_4f91_BA6D_7D1DA5724073
lea ecx, [ebp - 0x14b0]
call fcn.00412440
mov byte [ebp - 4], 0xc
push 1
lea ecx, [ebp - 0x14b8]
push ecx
call fcn.0042fec0
add esp, 8
push 2
lea edx, [ebp - 0x14b4]
push edx
call fcn.0042fec0
add esp, 8
push 3
lea eax, [ebp - 0x14b0]
push eax
call fcn.0042fec0
add esp, 8
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x14b0]
call fcn.00412b40
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x14b4]
call fcn.00412b40
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x14b8]
call fcn.00412b40
call fcn.0044fb81
push eax
lea ecx, [ebp - 0x10]
call fcn.00412940
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x3acc]
call fcn.0042fe80
test eax, eax
je 0x430a9e
push str.Client_64EstConfig.ini
mov ecx, dword [ebp - 0x3acc]
add ecx, 0xf0
push ecx
lea edx, [ebp - 0x380c]
push edx
call fcn.0040f270
add esp, 0xc
mov dword [ebp - 0x3af4], eax
mov eax, dword [ebp - 0x3af4]
mov dword [ebp - 0x390c], eax
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x390c]
push ecx
lea ecx, [ebp - 0x10]
call fcn.00412a10
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x380c]
call fcn.004129d0
jmp 0x430af3
push str.ClientEstConfig.ini
mov edx, dword [ebp - 0x3acc]
add edx, 0xf0
push edx
lea eax, [ebp - 0x3810]
push eax
call fcn.0040f270
add esp, 0xc
mov dword [ebp - 0x3af8], eax
mov ecx, dword [ebp - 0x3af8]
mov dword [ebp - 0x3914], ecx
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x3914]
push edx
lea ecx, [ebp - 0x10]
call fcn.00412a10
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x3810]
call fcn.004129d0
push str.C:Program_FilesEsafeNetCobra_DocGuard_ClientEstConfig.ini
push 0
push str.OnOff
push str.FullReplaceOldEnCrypt
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
test eax, eax
je 0x430b27
mov eax, dword [ebp - 0x10]
push eax
push 0x4d4bb4
push str.OnOff
push str.FullReplaceOldEncrypt
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push str.C:Program_FilesEsafeNetCobra_DocGuard_ClientEstConfig.ini
push 0
push str.Finish
push str.FullReplaceOldEnCrypt
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
test eax, eax
je 0x430b5b
mov ecx, dword [ebp - 0x10]
push ecx
push 0x4d4bb4
push str.Finish
push str.FullReplaceOldEnCrypt
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push str.C:Program_FilesEsafeNetCobra_DocGuard_ClientEstConfig.ini
push 0
push str.First
push str.FullReplaceOldEnCrypt
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
test eax, eax
je 0x430b8f
mov edx, dword [ebp - 0x10]
push edx
push 0x4d4bb4
push str.First
push str.FullReplaceOldEnCrypt
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
xor eax, eax
mov word [ebp - 0x82c], ax
push 0x7fe
push 0
lea ecx, [ebp - 0x82a]
push ecx
call fcn.004931a0
add esp, 0xc
push str.C:Program_FilesEsafeNetCobra_DocGuard_ClientEstConfig.ini
push 0x400
lea edx, [ebp - 0x82c]
push edx
push 0x4d1180
push str.CurrentPolicy
push str.FullReplaceOldEnCrypt
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x82c]
push eax
lea ecx, [ebp - 0x3818]
call fcn.00412290
mov dword [ebp - 0x3928], eax
mov ecx, dword [ebp - 0x3928]
mov edx, dword [ecx]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x3924], eax
xor ecx, ecx
cmp dword [ebp - 0x3924], 0
sete cl
movzx edx, cl
neg edx
sbb edx, edx
add edx, 1
mov byte [ebp - 0x3811], dl
lea ecx, [ebp - 0x3818]
call fcn.004129d0
movzx eax, byte [ebp - 0x3811]
test eax, eax
je 0x430c87
lea ecx, [ebp - 0x82c]
push ecx
lea ecx, [ebp - 0x381c]
call fcn.00412290
mov dword [ebp - 0x3944], eax
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x3930], edx
mov eax, dword [ebp - 0x3944]
mov ecx, dword [eax]
mov dword [ebp - 0x3948], ecx
mov edx, dword [ebp - 0x3930]
push edx
mov eax, dword [ebp - 0x3948]
push eax
push str.CurrentPolicy
push str.FullReplaceOldEnCrypt
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0x381c]
call fcn.004129d0
xor ecx, ecx
mov word [ebp - 0x124c], cx
push 0x7fe
push 0
lea edx, [ebp - 0x124a]
push edx
call fcn.004931a0
add esp, 0xc
push str.C:Program_FilesEsafeNetCobra_DocGuard_ClientEstConfig.ini
push 0x400
lea eax, [ebp - 0x124c]
push eax
push 0x4d1180
push 0x4d95c0
push str.FullReplaceOldEnCrypt
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x124c]
push ecx
lea ecx, [ebp - 0x3824]
call fcn.00412290
mov dword [ebp - 0x3964], eax
mov edx, dword [ebp - 0x3964]
mov eax, dword [edx]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x3960], ecx
xor edx, edx
cmp dword [ebp - 0x3960], 0
sete dl
movzx eax, dl
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x381d], al
lea ecx, [ebp - 0x3824]
call fcn.004129d0
movzx ecx, byte [ebp - 0x381d]
test ecx, ecx
je 0x430d7f
lea edx, [ebp - 0x124c]
push edx
lea ecx, [ebp - 0x3828]
call fcn.00412290
mov dword [ebp - 0x3980], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x396c], eax
mov ecx, dword [ebp - 0x3980]
mov edx, dword [ecx]
mov dword [ebp - 0x3984], edx
mov eax, dword [ebp - 0x396c]
push eax
mov ecx, dword [ebp - 0x3984]
push ecx
push 0x4d95c0
push str.FullReplaceOldEnCrypt
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0x3828]
call fcn.004129d0
push str.C:Program_FilesEsafeNetCobra_DocGuard_ClientEstConfig.ini
push 0
push str.TryTimes
push str.FullReplaceOldEnCrypt
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x830], eax
lea ecx, [ebp - 0x20]
call fcn.00412230
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x830]
push edx
push 0x4d8ce0
lea eax, [ebp - 0x20]
push eax
call fcn.00413630
add esp, 0xc
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x3998], ecx
mov edx, dword [ebp - 0x3998]
push edx
mov eax, dword [ebp - 0x20]
push eax
push str.TryTimes
push str.FullReplaceOldEnCrypt
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push str.C:Program_FilesEsafeNetCobra_DocGuard_ClientEstConfig.ini
push 0
push str.isNeedInputPwd
push str.FullReplaceOldEncrypt
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
test eax, eax
je 0x430e18
mov ecx, dword [ebp - 0x10]
push ecx
push 0x4d4bb4
push str.isNeedInputPwd
push str.FullReplaceOldEnCrypt
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push str.C:Program_FilesEsafeNetCobra_DocGuard_ClientEstConfig.ini
push 1
push str.STATE
push str.Permission
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0xa48], eax
cmp dword [ebp - 0xa48], 0
jne 0x430e58
push str.1ModifyRegAcount_0_
call fcn.0042fb40
add esp, 4
push 1
mov ecx, dword [ebp - 0x3acc]
call fcn.00443fd0
mov edx, dword [ebp - 0x125c]
mov dword [ebp - 0x399c], edx
mov eax, dword [ebp - 0x399c]
push eax
push 0
push str.STATE
push str.StartRegAcount
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x1254], eax
cmp dword [ebp - 0x1254], 1
jne 0x430ea8
push str.2ModifyRegAcount_0_
call fcn.0042fb40
add esp, 4
push 0
mov ecx, dword [ebp - 0x3acc]
call fcn.00443fd0
jmp 0x430ecb
cmp dword [ebp - 0x1254], 2
jne 0x430ecb
push str.3ModifyRegAcount_1_
call fcn.0042fb40
add esp, 4
push 1
mov ecx, dword [ebp - 0x3acc]
call fcn.00443fd0
mov ecx, dword [ebp - 0x3acc]
call fcn.00443df0
push str.DeleteDeskTopRegresidual_end
call fcn.0042fb40
add esp, 4
mov ecx, dword [ebp - 0x3acc]
call fcn.00443e40
push str.DeleteSystemDLL_end
call fcn.0042fb40
add esp, 4
cmp dword [0x508d94], 5
jne 0x4310f1
mov ecx, dword [0x508d9c]
mov edx, dword [ecx + 4]
movzx eax, word [edx]
cmp eax, 0x2d
je 0x430f2e
mov ecx, dword [0x508d9c]
mov edx, dword [ecx + 4]
movzx eax, word [edx]
cmp eax, 0x2f
jne 0x4310f1
push str.concise
mov ecx, dword [0x508d9c]
mov edx, dword [ecx + 4]
add edx, 2
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4310f1
push str._UpdatePatch_tInitInstance___argc__5_
call fcn.0042fb40
add esp, 4
xor eax, eax
mov word [ebp - 0x1aec], ax
push 0x208
push 0
lea ecx, [ebp - 0x1aea]
push ecx
call fcn.004931a0
add esp, 0xc
xor edx, edx
mov word [ebp - 0x18dc], dx
push 0x208
push 0
lea eax, [ebp - 0x18da]
push eax
call fcn.004931a0
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0x16cc], cx
push 0x208
push 0
lea edx, [ebp - 0x16ca]
push edx
call fcn.004931a0
add esp, 0xc
push 0x104
mov eax, dword [0x508d9c]
mov ecx, dword [eax + 8]
push ecx
lea edx, [ebp - 0x1aec]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
push 0x104
mov eax, dword [0x508d9c]
mov ecx, dword [eax + 0xc]
push ecx
lea edx, [ebp - 0x18dc]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
push 0x104
mov eax, dword [0x508d9c]
mov ecx, dword [eax + 0x10]
push ecx
lea edx, [ebp - 0x16cc]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea eax, [ebp - 0x1aec]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x43102b
lea ecx, [ebp - 0x1aec]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryEmptyW]
test eax, eax
je 0x43104a
push str.__PathFileExists__szClientDir____PathIsDirectoryEmpty__szClientDir__
call fcn.0042fb40
add esp, 4
mov edx, dword [ebp - 0x3acc]
mov dword [edx + 0xb8], 1
jmp 0x4310a3
lea ecx, [ebp - 0x1d0c]
call fcn.00401940
mov byte [ebp - 4], 0x11
push str._m_uExitCode__cp.DoUpdate__szClientDir__szUpdateDir__szPatchLog__
call fcn.0042fb40
add esp, 4
push 0
lea eax, [ebp - 0x16cc]
push eax
lea ecx, [ebp - 0x18dc]
push ecx
lea edx, [ebp - 0x1aec]
push edx
lea ecx, [ebp - 0x1d0c]
call fcn.0040ac80
mov ecx, dword [ebp - 0x3acc]
mov dword [ecx + 0xb8], eax
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x1d0c]
call fcn.004019f0
mov dword [ebp - 0x382c], 0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20]
call fcn.004129d0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x10]
call fcn.004129d0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x125c]
call fcn.004129d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x834]
call fcn.004129d0
mov eax, dword [ebp - 0x382c]
jmp 0x431bec
lea edx, [ebp - 0x3830]
push edx
mov ecx, dword [ebp - 0x3acc]
call fcn.00432f50
mov dword [ebp - 0x3afc], eax
mov eax, dword [ebp - 0x3afc]
mov dword [ebp - 0x39b4], eax
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x3acc]
add ecx, 0xc4
mov dword [ebp - 0x39b0], ecx
mov edx, dword [ebp - 0x39b4]
push edx
mov ecx, dword [ebp - 0x39b0]
call fcn.00412a10
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x3830]
call fcn.004129d0
mov eax, dword [ebp - 0x3acc]
mov ecx, dword [eax + 0xc4]
push ecx
push str._UpdatePatch_tInitInstance_m_strExtractPath_s
call fcn.0042fb40
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x1484]
call fcn.00412290
mov byte [ebp - 4], 0x13
mov edx, dword [ebp - 0x1484]
push edx
push str._UpdatePatch_tCommandLine__str___s
call fcn.0042fb40
add esp, 8
push 0
push str._Extract.exe
lea ecx, [ebp - 0x1484]
call fcn.0040ee60
cmp eax, 0xffffffff
je 0x431221
mov eax, dword [ebp - 0x3acc]
mov dword [eax + 0xd8], 1
push str._INFO_._UPDATE__extract...
call fcn.0042fb40
add esp, 4
mov dword [ebp - 0x3834], 0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x1484]
call fcn.004129d0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20]
call fcn.004129d0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x10]
call fcn.004129d0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x125c]
call fcn.004129d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x834]
call fcn.004129d0
mov eax, dword [ebp - 0x3834]
jmp 0x431bec
push str.config.ini
mov ecx, dword [ebp - 0x3acc]
add ecx, 0xc4
push ecx
lea edx, [ebp - 0x1480]
push edx
call fcn.0040f270
add esp, 0xc
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0x1480]
mov dword [ebp - 0x39ec], eax
mov ecx, dword [ebp - 0x39ec]
push ecx
push 1
push str.mode
push str.update
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x1260]
call fcn.00412230
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x1480]
push edx
mov eax, dword [ebp - 0x1c]
push eax
push str.iSilientMode___d__strConfigIni___s
lea ecx, [ebp - 0x1260]
push ecx
call fcn.00413630
add esp, 0x10
mov edx, dword [ebp - 0x1260]
push edx
call fcn.0042fb40
add esp, 4
lea eax, [ebp - 0x3838]
push eax
mov ecx, dword [ebp - 0x3acc]
call fcn.00432e90
mov dword [ebp - 0x3b00], eax
mov ecx, dword [ebp - 0x3b00]
mov dword [ebp - 0x3a00], ecx
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x3acc]
add edx, 0xc0
mov dword [ebp - 0x39fc], edx
mov eax, dword [ebp - 0x3a00]
push eax
mov ecx, dword [ebp - 0x39fc]
call fcn.00412a10
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x3838]
call fcn.004129d0
push 0
mov ecx, dword [ebp - 0x3acc]
call fcn.00444610
mov dword [ebp - 0xa40], eax
cmp dword [ebp - 0xa40], 0
je 0x431331
push str.__InUnstall_Nsffilectl_OK
call fcn.0042fb40
add esp, 4
jmp 0x43133e
push str.__InUnstall_Nsffilectl_False
call fcn.0042fb40
add esp, 4
mov ecx, dword [ebp - 0x834]
mov dword [ebp - 0x3a08], ecx
mov edx, dword [ebp - 0x3a08]
push edx
push 0
push str.unstallMSM
push str.update
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x147c], eax
cmp dword [ebp - 0x147c], 1
jne 0x43149d
lea ecx, [ebp - 0x1f2c]
call fcn.00401940
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x1f2c]
call fcn.00401db0
push 0
mov ecx, dword [ebp - 0x3acc]
call fcn.004443b0
mov eax, dword [ebp - 0x3acc]
mov ecx, dword [eax + 0xc0]
sub ecx, 0x10
mov dword [ebp - 0x3a0c], ecx
mov edx, dword [ebp - 0x3a0c]
push edx
call fcn.00412ee0
add esp, 4
mov dword [ebp - 0x3a10], eax
mov eax, dword [ebp - 0x3a10]
add eax, 0x10
mov dword [ebp - 0x1f30], eax
mov byte [ebp - 4], 0x18
mov ecx, str.MSM_
test ecx, ecx
jne 0x4313ef
mov dword [ebp - 0x3a14], 0
jmp 0x431402
push str.MSM_
call fcn.004939fc
add esp, 4
mov dword [ebp - 0x3a14], eax
mov edx, dword [ebp - 0x3a14]
push edx
push str.MSM_
lea ecx, [ebp - 0x1f30]
call fcn.00411880
push ecx
mov eax, esp
mov dword [ebp - 0x383c], esp
mov dword [ebp - 0x3a20], eax
mov ecx, dword [ebp - 0x1f30]
sub ecx, 0x10
mov dword [ebp - 0x3a18], ecx
mov edx, dword [ebp - 0x3a18]
push edx
call fcn.00412ee0
add esp, 4
mov dword [ebp - 0x3a1c], eax
mov eax, dword [ebp - 0x3a1c]
add eax, 0x10
mov ecx, dword [ebp - 0x3a20]
mov dword [ecx], eax
mov edx, dword [ebp - 0x3a20]
mov dword [ebp - 0x3b04], edx
mov ecx, dword [ebp - 0x3acc]
call fcn.0043c810
lea ecx, [ebp - 0x1f2c]
call fcn.004023f0
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x1f30]
call fcn.004129d0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x1f2c]
call fcn.004019f0
mov eax, dword [ebp - 0x834]
mov dword [ebp - 0x3a28], eax
mov ecx, dword [ebp - 0x3a28]
push ecx
push 0
push str.unESTSIP
push str.update
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0xa44], eax
cmp dword [ebp - 0x147c], 1
jne 0x4315ef
lea ecx, [ebp - 0x2154]
call fcn.00401940
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x3acc]
call fcn.00444220
mov edx, dword [ebp - 0x3acc]
mov eax, dword [edx + 0xc0]
sub eax, 0x10
mov dword [ebp - 0x3a2c], eax
mov ecx, dword [ebp - 0x3a2c]
push ecx
call fcn.00412ee0
add esp, 4
mov dword [ebp - 0x3a30], eax
mov edx, dword [ebp - 0x3a30]
add edx, 0x10
mov dword [ebp - 0x2158], edx
mov byte [ebp - 4], 0x1a
mov eax, str.ESTSIP_
test eax, eax
jne 0x431541
mov dword [ebp - 0x3a34], 0
jmp 0x431554
push str.ESTSIP_
call fcn.004939fc
add esp, 4
mov dword [ebp - 0x3a34], eax
mov ecx, dword [ebp - 0x3a34]
push ecx
push str.ESTSIP_
lea ecx, [ebp - 0x2158]
call fcn.00411880
push ecx
mov edx, esp
mov dword [ebp - 0x3840], esp
mov dword [ebp - 0x3a40], edx
mov eax, dword [ebp - 0x2158]
sub eax, 0x10
mov dword [ebp - 0x3a38], eax
mov ecx, dword [ebp - 0x3a38]
push ecx
call fcn.00412ee0
add esp, 4
mov dword [ebp - 0x3a3c], eax
mov edx, dword [ebp - 0x3a3c]
add edx, 0x10
mov eax, dword [ebp - 0x3a40]
mov dword [eax], edx
mov ecx, dword [ebp - 0x3a40]
mov dword [ebp - 0x3b08], ecx
mov ecx, dword [ebp - 0x3acc]
call fcn.0043c810
lea ecx, [ebp - 0x2154]
call fcn.004023f0
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x2158]
call fcn.004129d0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x2154]
call fcn.004019f0
mov edx, dword [ebp - 0x834]
mov dword [ebp - 0x3a48], edx
mov eax, dword [ebp - 0x3a48]
push eax
push 0
push str.unstallDesktopMgr
push str.update
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 1
jne 0x43165c
lea ecx, [ebp - 0x237c]
call fcn.00401940
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x237c]
call fcn.00401db0
mov ecx, dword [ebp - 0x3acc]
call fcn.00444800
lea ecx, [ebp - 0x237c]
call fcn.004023f0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x237c]
call fcn.004019f0
mov ecx, dword [ebp - 0x1c]
push ecx
push str._GetPrivateProfileInt__iSilientMode___d
call fcn.0042fb40
add esp, 8
cmp dword [ebp - 0x1c], 0
je 0x431b76
xor edx, edx
mov word [ebp - 0x2dc4], dx
push 0x208
push 0
lea eax, [ebp - 0x2dc2]
push eax
call fcn.004931a0
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0x2bb4], cx
push 0x208
push 0
lea edx, [ebp - 0x2bb2]
push edx
call fcn.004931a0
add esp, 0xc
xor eax, eax
mov word [ebp - 0x29a4], ax
push 0x208
push 0
lea ecx, [ebp - 0x29a2]
push ecx
call fcn.004931a0
add esp, 0xc
lea edx, [ebp - 0x3844]
push edx
mov ecx, dword [ebp - 0x3acc]
call fcn.00432e90
mov dword [ebp - 0x3a4c], eax
mov eax, dword [ebp - 0x3a4c]
mov ecx, dword [eax]
mov dword [ebp - 0x3a50], ecx
push 0x104
mov edx, dword [ebp - 0x3a50]
push edx
lea eax, [ebp - 0x2dc4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea ecx, [ebp - 0x3844]
call fcn.004129d0
lea ecx, [ebp - 0x3848]
push ecx
mov ecx, dword [ebp - 0x3acc]
call fcn.00432e90
mov dword [ebp - 0x3b0c], eax
mov edx, dword [ebp - 0x3b0c]
mov dword [ebp - 0x3b10], edx
mov byte [ebp - 4], 0x1c
push str.updatepath
mov eax, dword [ebp - 0x3b10]
push eax
lea ecx, [ebp - 0x384c]
push ecx
call fcn.0040f270
add esp, 0xc
mov dword [ebp - 0x3a58], eax
mov edx, dword [ebp - 0x3a58]
mov eax, dword [edx]
mov dword [ebp - 0x3a5c], eax
push 0x104
mov ecx, dword [ebp - 0x3a5c]
push ecx
lea edx, [ebp - 0x2bb4]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea ecx, [ebp - 0x384c]
call fcn.004129d0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x3848]
call fcn.004129d0
lea eax, [ebp - 0x3850]
push eax
mov ecx, dword [ebp - 0x3acc]
call fcn.00432e90
mov dword [ebp - 0x3b14], eax
mov ecx, dword [ebp - 0x3b14]
mov dword [ebp - 0x3b18], ecx
mov byte [ebp - 4], 0x1d
push str.update.log
mov edx, dword [ebp - 0x3b18]
push edx
lea eax, [ebp - 0x3854]
push eax
call fcn.0040f270
add esp, 0xc
mov dword [ebp - 0x3a68], eax
mov ecx, dword [ebp - 0x3a68]
mov edx, dword [ecx]
mov dword [ebp - 0x3a6c], edx
push 0x104
mov eax, dword [ebp - 0x3a6c]
push eax
lea ecx, [ebp - 0x29a4]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea ecx, [ebp - 0x3854]
call fcn.004129d0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x3850]
call fcn.004129d0
lea edx, [ebp - 0x29a4]
push edx
lea eax, [ebp - 0x2bb4]
push eax
lea ecx, [ebp - 0x2dc4]
push ecx
push str._szClientDir___s_szUpdateDir___s_szPatchLog___s_
call fcn.0042fb40
add esp, 0x10
lea edx, [ebp - 0x2dc4]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x431876
lea eax, [ebp - 0x2dc4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryEmptyW]
test eax, eax
je 0x431895
push 0x4d8ef0
call fcn.0042fb40
add esp, 4
mov ecx, dword [ebp - 0x3acc]
mov dword [ecx + 0xb8], 1
jmp 0x4318ee
push str.CConcisePatch_cp__CConcisePatch_cp__CConcisePatch_cp_
call fcn.0042fb40
add esp, 4
lea ecx, [ebp - 0x37e4]
call fcn.00401940
mov byte [ebp - 4], 0x1e
push 1
lea edx, [ebp - 0x29a4]
push edx
lea eax, [ebp - 0x2bb4]
push eax
lea ecx, [ebp - 0x2dc4]
push ecx
lea ecx, [ebp - 0x37e4]
call fcn.0040ac80
mov edx, dword [ebp - 0x3acc]
mov dword [edx + 0xb8], eax
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x37e4]
call fcn.004019f0
mov ecx, dword [ebp - 0x3acc]
call fcn.00432630
mov ecx, dword [ebp - 0x3acc]
call fcn.00432230
mov ecx, dword [ebp - 0x3acc]
call fcn.00431e90
lea ecx, [ebp - 0x2794]
call fcn.00452618
mov byte [ebp - 4], 0x1f
push 0x200
lea eax, [ebp - 0x35c4]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
jne 0x4319c2
mov dword [ebp - 0x3858], 0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x2794]
call fcn.00452641
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x1260]
call fcn.004129d0
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x1480]
call fcn.004129d0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x1484]
call fcn.004129d0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20]
call fcn.004129d0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x10]
call fcn.004129d0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x125c]
call fcn.004129d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x834]
call fcn.004129d0
mov eax, dword [ebp - 0x3858]
jmp 0x431bec
lea ecx, [ebp - 0x35c4]
push ecx
lea edx, [ebp - 0x277c]
push edx
call fcn.00493a44
add esp, 8
lea eax, [ebp - 0x35c4]
push eax
lea ecx, [ebp - 0x31c4]
push ecx
call fcn.00493a44
add esp, 8
push str.DRIVERSNSFFileCtl.sys
lea edx, [ebp - 0x277c]
push edx
call fcn.00493a16
add esp, 8
push str.DRIVERSNSFFileCtl.sys__
lea eax, [ebp - 0x31c4]
push eax
call fcn.00493a16
add esp, 8
push 0
lea ecx, [ebp - 0x31c4]
push ecx
lea ecx, [ebp - 0x2794]
call fcn.004526d5
test eax, eax
je 0x431a3d
lea edx, [ebp - 0x31c4]
push edx
call fcn.00496e66
add esp, 4
push 0
lea eax, [ebp - 0x277c]
push eax
lea ecx, [ebp - 0x2794]
call fcn.004526d5
test eax, eax
je 0x431a6b
lea ecx, [ebp - 0x31c4]
push ecx
lea edx, [ebp - 0x277c]
push edx
call fcn.00496e33
add esp, 8
push 0
lea eax, [ebp - 0x277c]
push eax
lea ecx, [ebp - 0x2794]
call fcn.004526d5
test eax, eax
je 0x431a92
push str._rename_false
call fcn.0042fb40
add esp, 4
jmp 0x431ab7
push 0
lea ecx, [ebp - 0x31c4]
push ecx
lea ecx, [ebp - 0x2794]
call fcn.004526d5
test eax, eax
je 0x431ab7
push str._rename_true
call fcn.0042fb40
add esp, 4
push 4
push 0
lea edx, [ebp - 0x31c4]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov eax, dword [ebp - 0x3acc]
cmp dword [eax + 0xb8], 0
jne 0x431ae2
mov ecx, dword [ebp - 0x3acc]
call fcn.00431c10
push str._______Silent_Upgrade_end_________
call fcn.0042fb40
add esp, 4
mov dword [ebp - 0x385c], 0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x2794]
call fcn.00452641
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x1260]
call fcn.004129d0
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x1480]
call fcn.004129d0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x1484]
call fcn.004129d0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20]
call fcn.004129d0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x10]
call fcn.004129d0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x125c]
call fcn.004129d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x834]
call fcn.004129d0
mov eax, dword [ebp - 0x385c]
jmp 0x431bec
mov dword [ebp - 0x3860], 0
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x1260]
call fcn.004129d0
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x1480]
call fcn.004129d0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x1484]
call fcn.004129d0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20]
call fcn.004129d0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x10]
call fcn.004129d0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x125c]
call fcn.004129d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x834]
call fcn.004129d0
mov eax, dword [ebp - 0x3860]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
xor ecx, ebp
call fcn.0049318c
mov esp, ebp
pop ebp
ret