Function at 0x403b2b
Capabilities:
Check if file exists
Create directory
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24c
mov eax, dword [0x430050]
xor eax, esp
mov dword [esp + 0x248], eax
push ebx
push esi
push edi
call dword [0x427080]
xor esi, esi
push esi
mov dword [esp + 0x14], eax
call dword [0x4272d0]
push ecx
mov eax, esp
mov dword [esp + 0x3c], esp
push str.begin
push eax
call fcn.00403f7b
call fcn.00401d81
pop ecx
push esi
call dword [0x427084]
push str.LocalB907A602_E7E0_4613_B57B_53B05062D199
push esi
push esi
call dword [0x427088]
cmp eax, esi
mov dword [esp + 0x28], eax
je 0x403bab
call dword [0x42706c]
cmp eax, 0xb7
jne 0x403bab
push dword [esp + 0x28]
call dword [0x427068]
jmp 0x403f36
push esi
push esi
push esi
push esi
call dword [0x42726c]
mov ebx, 0x400
push ebx
call fcn.0040e12c
pop ecx
push ebx
mov edi, eax
push esi
push edi
mov dword [esp + 0x44], edi
call fcn.00411d70
mov eax, dword [0x4322e4]
mov ebx, 0x4322e4
add esp, 0xc
mov ecx, ebx
call dword [eax + 0xc]
add eax, 0x10
push esi
mov dword [esp + 0x1c], eax
call dword [0x42708c]
cmp eax, esi
je 0x403edd
push eax
call fcn.0040cbbd
test al, al
pop ecx
je 0x403edd
mov eax, dword [edi]
cmp eax, esi
jbe 0x403c18
lea ecx, [edi + 4]
mov edx, eax
xor byte [ecx], 0x97
inc ecx
dec edx
jne 0x403c11
push eax
add edi, 4
push edi
push eax
lea esi, [esp + 0x24]
call fcn.0040413d
push eax
call fcn.0040f0a0
add esp, 0xc
mov edx, esi
call fcn.00404163
mov edi, dword [esp + 0x18]
push ecx
add edi, 0xfffffff0
mov dword [esp + 0x14], esp
mov eax, edi
mov dword [esp + 0x14], esp
call fcn.004049de
mov ecx, dword [esp + 0x14]
push 0x10
pop esi
add eax, esi
mov dword [ecx], eax
call fcn.00403321
test al, al
pop ecx
jne 0x403c6a
mov eax, edi
jmp 0x403f31
lea eax, [esp + 0x40]
push eax
push 0x104
call dword [0x427090]
mov eax, dword [0x4322e4]
mov ecx, ebx
call dword [eax + 0xc]
add eax, esi
mov dword [esp + 0x14], eax
push str.BaiduWebInstallerSilent_
lea eax, [esp + 0x44]
push eax
mov edi, str._s_s
push edi
lea eax, [esp + 0x20]
call fcn.00404d5a
add esp, 0xc
push dword [esp + 0x18]
lea eax, [esp + 0x20]
push eax
call fcn.004041c1
mov eax, dword [0x4322e4]
mov ecx, ebx
call dword [eax + 0xc]
add eax, esi
mov dword [esp + 0x34], eax
mov eax, dword [0x4322e4]
mov ecx, ebx
call dword [eax + 0xc]
add eax, esi
mov dword [esp + 0x3c], eax
mov eax, dword [0x4322e4]
mov ecx, ebx
call dword [eax + 0xc]
add eax, esi
mov dword [esp + 0x24], eax
mov eax, dword [0x4322e4]
mov ecx, ebx
call dword [eax + 0xc]
push dword [esp + 0x1c]
add eax, esi
mov dword [esp + 0x24], eax
push str.http:__dl.client.baidu.com_oi_config_silenttnconfig__s.xml
lea eax, [esp + 0x44]
call fcn.00404d5a
push dword [esp + 0x24]
lea eax, [esp + 0x40]
push str.http:__dl.client.baidu.com_union_getbdbrowser.php_tn_s
call fcn.00404d5a
push dword [esp + 0x2c]
lea eax, [esp + 0x38]
push str.baidubrowser__s.exe
call fcn.00404d5a
push dword [esp + 0x34]
lea eax, [esp + 0x3c]
push str.config__s.xml
call fcn.00404d5a
mov eax, dword [0x4322e4]
add esp, 0x20
mov ecx, ebx
call dword [eax + 0xc]
push dword [esp + 0x20]
add eax, esi
push dword [esp + 0x18]
mov dword [esp + 0x38], eax
push edi
lea eax, [esp + 0x3c]
call fcn.00404d5a
mov eax, dword [0x4322e4]
add esp, 0xc
mov ecx, ebx
call dword [eax + 0xc]
push dword [esp + 0x30]
add eax, esi
mov dword [esp + 0x30], eax
push str._S__TnConfig__s_
lea eax, [esp + 0x34]
call fcn.00404d5a
pop ecx
pop ecx
mov ecx, ebx
mov eax, dword [0x4322e4]
call dword [eax + 0xc]
mov edi, dword [esp + 0x14]
push edi
push dword [esp + 0x30]
add eax, esi
push dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
push dword [esp + 0x40]
lea eax, [esp + 0x20]
push dword [esp + 0x30]
push dword [esp + 0x50]
push str._i__url_s__exec0__saveas_s___i__url_s__exec1__saveas_s__cmdline_s___s___s_
call fcn.00404d5a
mov eax, dword [0x4322e4]
add esp, 0x1c
mov ecx, ebx
call dword [eax + 0xc]
add eax, esi
mov dword [esp + 0x14], eax
push edi
push str._sinstallerLog.txt
lea eax, [esp + 0x1c]
call fcn.00404d5a
pop ecx
pop ecx
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x403df7
push eax
push edi
push eax
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
cmp dword [0x43159c], 0xffffffff
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
jne 0x403e2b
push 0
push 0x80
push 4
push 0
push 1
push 0xc0000000
push ebx
call dword [0x427094]
cmp eax, 0xffffffff
mov dword [0x43159c], eax
je 0x403e62
and dword [esp + 0x14], 0
push esi
lea eax, [esp + 0x14]
push eax
call fcn.00403fc0
push 0
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x18]
push dword [eax - 0xc]
push eax
push dword [0x43159c]
call dword [0x42707c]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
call fcn.004054c6
push esi
call fcn.00403369
pop ecx
lea eax, [ebx - 0x10]
call fcn.004054c6
lea eax, [esi - 0x10]
call fcn.004054c6
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
call fcn.004054c6
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
call fcn.004054c6
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
call fcn.004054c6
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
call fcn.004054c6
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
call fcn.004054c6
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
call fcn.004054c6
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
call fcn.004054c6
lea eax, [edi - 0x10]
call fcn.004054c6
mov edi, dword [esp + 0x38]
xor esi, esi
jmp 0x403ee7
push dword [esp + 0x10]
call fcn.00403369
pop ecx
push edi
call fcn.0040f1c4
cmp dword [esp + 0x2c], esi
mov edi, dword [0x427068]
pop ecx
je 0x403f00
push dword [esp + 0x28]
call edi
push ecx
mov eax, esp
mov dword [esp + 0x3c], esp
push 0x4290b8
push eax
call fcn.00403f7b
call fcn.00401d81
pop ecx
call dword [0x4272d4]
mov eax, dword [0x43159c]
cmp eax, esi
je 0x403f2a
push eax
call edi
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.004054c6
mov ecx, dword [esp + 0x254]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0040e8f3
mov esp, ebp
pop ebp
ret 0x10