Function at 0x402f92
Capabilities:
Accept command line arguments
Check for time delay via gettickcount
Check if file exists
Check mutex on windows
Create directory
Encode data using xor
Get common file path
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x26c
mov eax, dword [0x42f050]
xor eax, esp
mov dword [esp + 0x268], eax
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
xor esi, esi
push esi
mov dword [esp + 0x40], eax
call dword [sym.imp.ole32.dll_CoInitialize]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str.LocalBrowser907A602_E7E0_4613_B57B_53B05062D189
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
cmp eax, esi
mov dword [esp + 0x24], eax
je 0x402ffa
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x402ffa
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x403665
push esi
push esi
push esi
push esi
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov ebx, 0x400
push ebx
call fcn.0040d361
pop ecx
push ebx
mov edi, eax
push esi
push edi
mov dword [esp + 0x24], edi
call fcn.00410b00
mov eax, dword [0x4312e4]
mov ebx, 0x4312e4
add esp, 0xc
mov ecx, ebx
call dword [eax + 0xc]
add eax, 0x10
push esi
mov dword [esp + 0x24], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
cmp eax, esi
je 0x4035ba
push eax
call fcn.0040bde4
test al, al
pop ecx
je 0x4035ba
push ecx
mov eax, esp
mov dword [esp + 0x40], esp
push 0x428536
push eax
call fcn.004036aa
push ecx
mov eax, esp
mov dword [esp + 0x38], esp
push str.begin
push eax
call fcn.004036aa
call fcn.00401c99
pop ecx
pop ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x431ef4], eax
mov eax, dword [edi]
cmp eax, esi
jbe 0x40309d
lea ecx, [edi + 4]
mov edx, eax
xor byte [ecx], 0x97
inc ecx
dec edx
jne 0x403096
push eax
add edi, 4
push edi
push eax
lea esi, [esp + 0x2c]
call fcn.0040383c
push eax
call fcn.0040e2e0
add esp, 0xc
mov edx, esi
call fcn.00403862
lea eax, [esp + 0x60]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov eax, dword [0x4312e4]
mov ecx, ebx
call dword [eax + 0xc]
push 0x10
pop esi
add eax, esi
mov dword [esp + 0x10], eax
push str.BaiduWebInstallerSilent_
lea eax, [esp + 0x64]
push eax
push str._s_s
lea eax, [esp + 0x1c]
call fcn.004044af
mov eax, dword [0x4312e4]
add esp, 0xc
mov ecx, ebx
call dword [eax + 0xc]
add eax, esi
mov dword [esp + 0x4c], eax
mov eax, dword [0x4312e4]
mov ecx, ebx
call dword [eax + 0xc]
add eax, esi
mov dword [esp + 0x40], eax
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.0040bc42
pop ecx
pop ecx
lea edi, [esp + 0x40]
call fcn.004038f2
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [0x4312e4]
mov ecx, ebx
call dword [eax + 0xc]
push dword [esp + 0x20]
add eax, esi
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
push eax
call fcn.00403f8c
test al, al
jne 0x403170
push dword [esp + 0x20]
lea eax, [esp + 0x10]
push eax
call fcn.00403eb9
mov eax, dword [0x4312e4]
mov ecx, ebx
call dword [eax + 0xc]
add eax, esi
mov dword [esp + 0x2c], eax
mov eax, dword [0x4312e4]
mov ecx, ebx
call dword [eax + 0xc]
add eax, esi
mov dword [esp + 0x28], eax
mov eax, dword [0x4312e4]
mov ecx, ebx
call dword [eax + 0xc]
add eax, esi
mov dword [esp + 0x38], eax
mov eax, dword [0x4312e4]
mov ecx, ebx
call dword [eax + 0xc]
add eax, esi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x34], esp
mov edi, esp
mov dword [esp + 0x18], eax
call fcn.0040402e
add eax, esi
mov dword [edi], eax
lea edi, [esp + 0x4c]
call fcn.00402daf
pop ecx
push dword [esp + 0xc]
lea eax, [esp + 0x2c]
push str.http:__dl.client.baidu.com_oi_config_silenttnconfig__s.xml
call fcn.004044af
push dword [esp + 0x50]
lea eax, [esp + 0x38]
push str.http:__dl.client.baidu.com_union_getbdbrowser.php_tn_s
call fcn.004044af
add esp, 0x10
push dword [esp + 0xc]
lea eax, [esp + 0x48]
push eax
call fcn.004036ef
mov eax, dword [0x4312e4]
mov ecx, ebx
call dword [eax + 0xc]
push dword [esp + 0x44]
add eax, esi
mov dword [esp + 0x20], eax
push str.tn_s
lea eax, [esp + 0x24]
call fcn.004044fa
mov eax, dword [esp + 0x24]
pop ecx
add eax, 0xfffffff0
mov dword [esp + 0x34], esp
mov edi, esp
mov dword [esp + 0x5c], eax
call fcn.00404184
push ecx
add eax, esi
mov dword [edi], eax
mov eax, esp
mov dword [esp + 0x38], esp
push 0x429020
push eax
call fcn.004036aa
call fcn.00401c99
push dword [esp + 0x14]
lea eax, [esp + 0x44]
push str.baidubrowser__s.exe
call fcn.004044af
push dword [esp + 0x1c]
lea eax, [esp + 0x48]
push str.config__s.xml
call fcn.004044af
add esp, 0x18
call fcn.00402a4e
test eax, eax
je 0x4033a6
push ecx
mov eax, esp
mov dword [esp + 0x1c], esp
push 0x428536
push eax
call fcn.004036aa
push ecx
mov eax, esp
mov dword [esp + 0x20], esp
push str.browserIsRunning
push eax
call fcn.004036aa
call fcn.00401c99
pop ecx
pop ecx
call fcn.00402a0e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
mov eax, dword [0x4312e4]
mov ecx, ebx
call dword [eax + 0xc]
sub edi, dword [0x431ef4]
add eax, esi
mov dword [esp + 0x24], eax
push edi
push str.causeBydownloadTimeOut_cancelTime_d
lea eax, [esp + 0x2c]
call fcn.004044fa
mov edi, dword [esp + 0x2c]
pop ecx
add edi, 0xfffffff0
mov eax, edi
mov dword [esp + 0x1c], esp
mov ebx, esp
call fcn.00404184
push ecx
add eax, esi
mov dword [ebx], eax
mov eax, esp
mov dword [esp + 0x20], esp
push 0x4280a4
push eax
call fcn.004036aa
call fcn.00401c99
pop ecx
pop ecx
mov eax, edi
call fcn.00404c04
mov eax, dword [esp + 0x58]
call fcn.00404c04
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x14]
call fcn.00404c04
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
jmp 0x403654
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.0040bbbb
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.0040bbbb
mov eax, dword [0x4312e4]
add esp, 0x10
mov ecx, ebx
call dword [eax + 0xc]
push dword [esp + 0x34]
mov edi, dword [esp + 0x14]
add eax, esi
mov dword [esp + 0x20], eax
push edi
push str._s_s
lea eax, [esp + 0x28]
call fcn.004044af
mov eax, dword [0x4312e4]
add esp, 0xc
mov ecx, ebx
call dword [eax + 0xc]
push dword [esp + 0x1c]
add eax, esi
mov dword [esp + 0x10], eax
push str._S__TnConfig__s_
lea eax, [esp + 0x14]
call fcn.004044af
mov eax, dword [0x4312e4]
pop ecx
pop ecx
mov ecx, ebx
call dword [eax + 0xc]
push edi
push dword [esp + 0x10]
add eax, esi
push dword [esp + 0x40]
mov dword [esp + 0x60], eax
push dword [esp + 0x38]
lea eax, [esp + 0x64]
push dword [esp + 0x44]
push dword [esp + 0x3c]
push str._i__url_s__exec0__saveas_s___i__url_s__exec1__saveas_s__cmdline_s___s___s_
call fcn.004044af
mov eax, dword [0x4312e4]
add esp, 0x1c
mov ecx, ebx
call dword [eax + 0xc]
add eax, esi
mov dword [esp + 0x10], eax
push edi
push str._sinstallerLog.txt
lea eax, [esp + 0x18]
call fcn.004044af
pop ecx
pop ecx
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x403480
push eax
push edi
push eax
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
cmp dword [0x43059c], 0xffffffff
jne 0x4034af
push 0
push 0x80
push 4
push 0
push 1
push 0xc0000000
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [0x43059c], eax
je 0x4034e9
mov eax, dword [esp + 0x50]
and dword [esp + 0x5c], 0
add eax, 0xfffffff0
call fcn.00404184
push 0
add eax, esi
lea ecx, [esp + 0x60]
push ecx
push dword [eax - 0xc]
mov dword [esp + 0x3c], eax
push eax
push dword [0x43059c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
call fcn.00404c04
mov esi, dword [esp + 0x54]
push esi
call fcn.00402235
mov eax, dword [esp + 0x14]
pop ecx
add eax, 0xfffffff0
call fcn.00404c04
lea eax, [esi - 0x10]
call fcn.00404c04
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x58]
call fcn.00404c04
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x14]
call fcn.00404c04
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
call fcn.00404c04
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
call fcn.00404c04
lea eax, [edi - 0x10]
call fcn.00404c04
mov edi, dword [esp + 0x18]
xor esi, esi
jmp 0x4035c4
push dword [esp + 0x3c]
call fcn.00402235
pop ecx
push edi
call fcn.0040e404
cmp dword [esp + 0x28], esi
pop ecx
je 0x4035db
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
mov eax, dword [0x4312e4]
mov ecx, ebx
call dword [eax + 0xc]
sub edi, dword [0x431ef4]
add eax, 0x10
mov dword [esp + 0x14], eax
push edi
push str.causeBydownloadTimeOut_cancelTime_d
lea eax, [esp + 0x1c]
call fcn.004044fa
mov ebx, dword [esp + 0x1c]
pop ecx
add ebx, 0xfffffff0
mov eax, ebx
mov dword [esp + 0x1c], esp
mov edi, esp
call fcn.00404184
push ecx
add eax, 0x10
mov dword [edi], eax
mov eax, esp
mov dword [esp + 0x20], esp
push 0x4280a4
push eax
call fcn.004036aa
call fcn.00401c99
pop ecx
pop ecx
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [0x43059c]
cmp eax, esi
je 0x403652
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
call fcn.00404c04
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
call fcn.00404c04
mov ecx, dword [esp + 0x274]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0040db28
mov esp, ebp
pop ebp
ret 0x10