Function at 0x415d50
Capabilities:
Check if file exists
Enumerate files on windows
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4410b2
mov eax, dword fs:[0]
push eax
mov eax, 0x104c0
call fcn.00438620
mov eax, dword [0x45066c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
push 0x100
lea ecx, [ebp - 0x114]
push ecx
push str.APPDATA
mov dword [ebp - 0x10404], eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
xor ebx, ebx
mov dword [ebp - 0x25c], 0xf
mov dword [ebp - 0x260], ebx
mov byte [ebp - 0x270], bl
lea eax, [ebp - 0x114]
mov dword [ebp - 4], ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x415dc6
sub eax, edx
push eax
lea edx, [ebp - 0x114]
push edx
lea ecx, [ebp - 0x270]
call fcn.004099f0
push 0x19
push str.Baidu_browserconfig.ini
lea ecx, [ebp - 0x270]
call fcn.004099f0
cmp dword [ebp - 0x25c], 0x10
mov eax, dword [ebp - 0x270]
jae 0x415e09
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x4160ea
mov edi, 0xf
mov dword [ebp - 0x224], edi
mov dword [ebp - 0x228], ebx
mov byte [ebp - 0x238], bl
lea eax, [ebp - 0x114]
mov byte [ebp - 4], 1
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x415e40
sub eax, edx
push eax
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x238]
call fcn.004099f0
push 0x17
push str.Baidu_browserUserData
lea ecx, [ebp - 0x238]
call fcn.004099f0
mov eax, dword [ebp - 0x238]
mov esi, 0x10
cmp dword [ebp - 0x224], esi
jae 0x415e87
lea eax, [ebp - 0x238]
push eax
lea ecx, [ebp - 0x21c]
push 0x104
push ecx
call fcn.00425233
add esp, 0xc
push 0x447394
lea edx, [ebp - 0x21c]
push 0x104
push edx
call fcn.004254d8
add esp, 0xc
lea eax, [ebp - 0x3b4]
push eax
lea ecx, [ebp - 0x21c]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x10400], eax
cmp eax, 0xffffffff
jne 0x415f10
cmp dword [ebp - 0x224], esi
jb 0x415eeb
mov edx, dword [ebp - 0x238]
push edx
call fcn.004233f0
add esp, 4
cmp dword [ebp - 0x25c], esi
mov dword [ebp - 0x224], edi
mov dword [ebp - 0x228], ebx
mov byte [ebp - 0x238], bl
jmp 0x4160f1
test byte [ebp - 0x3b4], 0x10
je 0x4160b6
cmp byte [ebp - 0x388], 0x2e
je 0x4160b6
mov dword [ebp - 0x240], 0xf
mov dword [ebp - 0x244], ebx
mov byte [ebp - 0x254], bl
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x238]
mov edi, 0x10
cmp dword [ebp - 0x224], edi
jae 0x415f5d
lea edx, [ebp - 0x238]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x415f62
sub eax, esi
push eax
push edx
lea ecx, [ebp - 0x254]
call fcn.004099f0
push 1
push 0x445828
lea ecx, [ebp - 0x254]
call fcn.004099f0
lea eax, [ebp - 0x388]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x415f93
sub eax, edx
push eax
lea ecx, [ebp - 0x388]
push ecx
lea ecx, [ebp - 0x254]
call fcn.004099f0
push 0xc
push str.userpref_v2
lea ecx, [ebp - 0x254]
call fcn.004099f0
mov ecx, dword [ebp - 0x254]
cmp dword [ebp - 0x240], edi
jae 0x415fd5
lea ecx, [ebp - 0x254]
lea edi, [ebp - 0x10414]
call fcn.00416e90
lea edx, [ebp - 0x103c0]
mov eax, edx
neg eax
and eax, 3
lea eax, [ebp + eax - 0x103c0]
lea ecx, [ebp - 0x3c0]
mov dword [ebp - 0x103fc], ebx
mov dword [ebp - 0x103f8], ebx
mov dword [ebp - 0x103ec], ebx
mov dword [ebp - 0x103e8], ebx
mov dword [ebp - 0x103e4], ebx
mov dword [ebp - 0x103dc], ebx
mov dword [ebp - 0x3c0], ebx
mov dword [ebp - 0x3bc], ebx
mov dword [ebp - 0x103cc], edx
mov dword [ebp - 0x103c8], eax
mov dword [ebp - 0x103c4], ecx
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x10414]
push edx
lea edi, [ebp - 0x103fc]
call fcn.00418b80
mov eax, dword [ebp - 0x103e4]
mov dword [ebp - 0x1041c], eax
cmp eax, ebx
jne 0x416122
lea esi, [ebp - 0x103cc]
mov byte [ebp - 4], 3
call fcn.004182c0
mov eax, dword [ebp - 0x10414]
cmp eax, ebx
je 0x416088
push eax
call fcn.004233f0
add esp, 4
mov byte [ebp - 4], 1
cmp dword [ebp - 0x240], 0x10
mov dword [ebp - 0x10414], ebx
mov dword [ebp - 0x10410], ebx
mov dword [ebp - 0x1040c], ebx
jb 0x4160b6
mov eax, dword [ebp - 0x254]
push eax
call fcn.004233f0
add esp, 4
mov edx, dword [ebp - 0x10400]
lea ecx, [ebp - 0x3b4]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x415f10
cmp dword [ebp - 0x224], 0x10
jb 0x4160ea
mov edx, dword [ebp - 0x238]
push edx
call fcn.004233f0
add esp, 4
cmp dword [ebp - 0x25c], 0x10
jb 0x416102
mov eax, dword [ebp - 0x270]
push eax
call fcn.004233f0
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0042304b
mov esp, ebp
pop ebp
ret 4
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x10400], esi
cmp esi, ebx
je 0x416320
jmp 0x416146
mov esi, dword [ebp - 0x10400]
push esi
mov ebx, 0x4473b8
call fcn.00417100
mov eax, dword [eax + 4]
test eax, eax
jne 0x41615d
mov eax, 0x453444
push str.homePage
push eax
call fcn.004241db
add esp, 8
push esi
test eax, eax
jne 0x416255
mov ebx, str.value
call fcn.00417100
test eax, eax
je 0x41618b
mov edx, eax
mov ecx, esi
call fcn.00417210
mov eax, str.value
inc eax
cmp byte [eax], 0
jne 0x416190
sub eax, str.value
lea ebx, [eax + 1]
lea esi, [ebp - 0x103cc]
call fcn.00418320
mov dword [ebp - 0x10418], eax
test ebx, ebx
je 0x4161c9
mov ecx, str.value
sub ecx, eax
mov esi, ebx
lea esp, [esp]
mov dl, byte [ecx + eax]
mov byte [eax], dl
inc eax
dec esi
jne 0x4161c0
mov edi, dword [ebp - 0x10404]
add edi, 0x1c
cmp dword [edi + 0x14], 0x10
jb 0x4161da
mov edi, dword [edi]
cmp byte [edi], 0
mov eax, edi
je 0x4161e7
inc eax
cmp byte [eax], 0
jne 0x4161e1
sub eax, edi
lea ebx, [eax + 1]
lea esi, [ebp - 0x103cc]
call fcn.00418320
mov esi, eax
test ebx, ebx
je 0x41620e
mov edx, edi
mov ecx, esi
sub edx, esi
mov edi, ebx
mov al, byte [edx + ecx]
mov byte [ecx], al
inc ecx
dec edi
jne 0x416205
mov edi, dword [ebp - 0x10418]
push esi
lea esi, [ebp - 0x103cc]
call fcn.00417320
mov ecx, dword [ebp - 0x10400]
xor edx, edx
cmp dword [ecx + 0x20], edx
je 0x416244
mov esi, dword [ecx + 0x24]
mov dword [eax + 0x14], esi
mov esi, dword [ecx + 0x24]
mov dword [esi + 0x18], eax
mov dword [ecx + 0x24], eax
mov dword [eax + 0x18], edx
jmp 0x4162fc
mov dword [eax + 0x14], edx
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], eax
mov dword [eax + 0x18], edx
jmp 0x4162fc
mov ebx, 0x4473b8
call fcn.00417100
mov eax, dword [eax + 4]
test eax, eax
jne 0x41626b
mov eax, 0x453444
push str.startMethod
push eax
call fcn.004241db
add esp, 8
test eax, eax
jne 0x416305
push esi
mov ebx, str.value
call fcn.00417100
xor ebx, ebx
cmp eax, ebx
je 0x41629b
mov edx, eax
mov ecx, esi
call fcn.00417210
lea ecx, [ebp - 0x103cc]
push ecx
mov eax, str.value
call fcn.004173e0
mov edi, eax
mov eax, dword [ebp - 0x10404]
add eax, 0x38
cmp dword [eax + 0x14], 0x10
jb 0x4162bf
mov eax, dword [eax]
lea edx, [ebp - 0x103cc]
push edx
call fcn.004173e0
push eax
lea esi, [ebp - 0x103cc]
call fcn.00417320
mov ecx, dword [ebp - 0x10400]
cmp dword [ecx + 0x20], ebx
je 0x4162f0
mov edx, dword [ecx + 0x24]
mov dword [eax + 0x14], edx
mov edx, dword [ecx + 0x24]
mov dword [edx + 0x18], eax
jmp 0x4162f6
mov dword [eax + 0x14], ebx
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], eax
mov dword [eax + 0x18], ebx
mov esi, dword [ebp - 0x10400]
mov dword [eax + 0x10], ecx
push esi
mov ebx, str.Item
call fcn.00417080
mov dword [ebp - 0x10400], eax
test eax, eax
jne 0x416140
xor ebx, ebx
lea eax, [ebp - 0x103cc]
push eax
mov eax, str.xml_version_1.0__encoding_utf_8_
call fcn.004173e0
push 7
mov edi, eax
lea esi, [ebp - 0x103cc]
call fcn.00417280
mov edx, dword [ebp - 0x1041c]
lea ecx, [ebp - 0x103fc]
call fcn.00417180
cmp dword [ebp - 0x240], 0x10
mov eax, dword [ebp - 0x254]
jae 0x416366
lea eax, [ebp - 0x254]
push eax
lea ecx, [ebp - 0x104cc]
push ecx
call fcn.00417430
push ebx
push ebx
lea edx, [ebp - 0x103fc]
push edx
lea ecx, [ebp - 0x104cc]
xor eax, eax
push ecx
push eax
lea eax, [ebp - 0x10420]
push eax
mov byte [ebp - 4], 5
call fcn.004197b0
add esp, 0x18
lea esi, [ebp - 0x104cc]
call fcn.00417640
lea ecx, [ebp - 0x1046c]
mov byte [ebp - 4], 4
call fcn.00417590
lea ecx, [ebp - 0x1046c]
push ecx
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.00422784
add esp, 4
lea esi, [ebp - 0x103cc]
mov byte [ebp - 4], 3
call fcn.004182c0
mov eax, dword [ebp - 0x10414]
cmp eax, ebx
je 0x4163ee
push eax
call fcn.004233f0
add esp, 4
mov esi, 0x10
mov dword [ebp - 0x10414], ebx
mov dword [ebp - 0x10410], ebx
mov dword [ebp - 0x1040c], ebx
cmp dword [ebp - 0x240], esi
jb 0x41641c
mov edx, dword [ebp - 0x254]
push edx
call fcn.004233f0
add esp, 4
mov edi, 0xf
mov dword [ebp - 0x240], edi
mov dword [ebp - 0x244], ebx
mov byte [ebp - 0x254], bl
cmp dword [ebp - 0x224], esi
jb 0x41644a
mov eax, dword [ebp - 0x238]
push eax
call fcn.004233f0
add esp, 4
mov dword [ebp - 0x224], edi
mov dword [ebp - 0x228], ebx
mov byte [ebp - 0x238], bl
cmp dword [ebp - 0x25c], esi
jb 0x416473
mov ecx, dword [ebp - 0x270]
push ecx
call fcn.004233f0
add esp, 4
mov al, 1
jmp 0x416104