Function at 0x418770
Capabilities:
Check if file exists
Query environment variable
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44f7dc
mov eax, dword fs:[0]
push eax
mov eax, 0x104ac
call fcn.00445b20
mov eax, dword [0x46166c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x100
lea eax, [ebp - 0x428]
push eax
mov esi, ecx
push str.APPDATA
mov dword [ebp - 0x1049c], esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
xor ebx, ebx
mov dword [ebp - 0x430], 0xf
mov dword [ebp - 0x434], ebx
mov byte [ebp - 0x444], bl
lea eax, [ebp - 0x428]
mov dword [ebp - 4], ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4187e5
sub eax, edx
push eax
lea ecx, [ebp - 0x428]
push ecx
lea ecx, [ebp - 0x444]
call fcn.0040aae0
push 0x19
push str.SogouExplorerconfig.xml
lea ecx, [ebp - 0x444]
call fcn.0040aae0
push 0x103
lea edx, [ebp - 0x327]
push ebx
push edx
mov byte [ebp - 0x328], bl
call fcn.00439380
add esp, 0xc
lea eax, [ebp - 0x10498]
push eax
push 0xf003f
push ebx
push str.SoftwareSogouExplorer
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x418930
push 0x103
lea ecx, [ebp - 0x21f]
push ebx
push ecx
mov byte [ebp - 0x220], bl
call fcn.00439380
add esp, 0xc
lea edx, [ebp - 0x104a0]
push edx
mov edx, dword [ebp - 0x10498]
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x10494]
push ecx
push ebx
push 0x45654c
push edx
mov dword [ebp - 0x10494], 1
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [ebp - 0x10498]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x103
lea ecx, [ebp - 0x117]
push ebx
push ecx
mov byte [ebp - 0x118], bl
call fcn.00439380
add esp, 0xc
cmp dword [esi + 0x14], 0x10
jb 0x4188d2
mov eax, dword [esi]
jmp 0x4188d4
mov eax, esi
push eax
lea edx, [ebp - 0x220]
push edx
push str._s_3_s
lea eax, [ebp - 0x118]
push 0x104
push eax
call fcn.004310b5
lea eax, [ebp - 0x118]
add esp, 0x14
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x418900
sub eax, edx
mov edx, eax
lea esi, [ebp - 0x118]
call fcn.00419b40
push eax
push 0x4562a8
lea ecx, [ebp - 0x328]
push 0x104
push ecx
call fcn.004310b5
add esp, 0x10
mov eax, dword [ebp - 0x444]
mov esi, 0x10
cmp dword [ebp - 0x430], esi
jae 0x418949
lea eax, [ebp - 0x444]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x418d6a
mov ecx, dword [ebp - 0x444]
cmp dword [ebp - 0x430], esi
jae 0x41896c
lea ecx, [ebp - 0x444]
lea edi, [ebp - 0x104b4]
call fcn.0041ad90
lea edx, [ebp - 0x10454]
mov eax, edx
neg eax
and eax, 3
lea eax, [ebp + eax - 0x10454]
lea ecx, [ebp - 0x454]
mov dword [ebp - 0x10490], ebx
mov dword [ebp - 0x1048c], ebx
mov dword [ebp - 0x10480], ebx
mov dword [ebp - 0x1047c], ebx
mov dword [ebp - 0x10478], ebx
mov dword [ebp - 0x10470], ebx
mov dword [ebp - 0x454], ebx
mov dword [ebp - 0x450], ebx
mov dword [ebp - 0x10460], edx
mov dword [ebp - 0x1045c], eax
mov dword [ebp - 0x10458], ecx
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x104b4]
push edx
lea edi, [ebp - 0x10490]
call fcn.0041cb50
mov eax, dword [ebp - 0x10478]
mov dword [ebp - 0x104a0], eax
cmp eax, ebx
je 0x418d48
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x10494], esi
cmp esi, ebx
je 0x418d48
push esi
mov ebx, str.homepage
call fcn.0041afd0
xor ebx, ebx
cmp eax, ebx
je 0x418a28
mov edx, eax
mov ecx, esi
call fcn.0041b0e0
lea eax, [ebp - 0x10460]
push eax
mov eax, str.homepage
call fcn.0041b2b0
mov edi, eax
mov eax, dword [ebp - 0x1049c]
cmp dword [eax + 0x14], 0x10
jb 0x418a49
mov eax, dword [eax]
lea ecx, [ebp - 0x10460]
push ecx
call fcn.0041b2b0
push eax
lea esi, [ebp - 0x10460]
call fcn.0041b1f0
mov esi, dword [ebp - 0x10494]
cmp dword [esi + 0x20], ebx
je 0x418a7a
mov edx, dword [esi + 0x24]
mov dword [eax + 0x14], edx
mov ecx, dword [esi + 0x24]
mov dword [ecx + 0x18], eax
jmp 0x418a80
mov dword [eax + 0x14], ebx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [eax + 0x18], ebx
push esi
mov ebx, 0x456558
mov dword [eax + 0x10], esi
call fcn.0041afd0
xor ebx, ebx
cmp eax, ebx
je 0x418aa3
mov edx, eax
mov ecx, esi
call fcn.0041b0e0
lea edx, [ebp - 0x10460]
push edx
mov eax, 0x456558
call fcn.0041b2b0
mov edi, eax
lea eax, [ebp - 0x10460]
push eax
lea eax, [ebp - 0x328]
call fcn.0041b2b0
push eax
lea esi, [ebp - 0x10460]
call fcn.0041b1f0
mov esi, dword [ebp - 0x10494]
cmp dword [esi + 0x20], ebx
je 0x418aed
mov ecx, dword [esi + 0x24]
mov dword [eax + 0x14], ecx
mov edx, dword [esi + 0x24]
mov dword [edx + 0x18], eax
jmp 0x418af3
mov dword [eax + 0x14], ebx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [eax + 0x18], ebx
push esi
mov ebx, str.homepagetype
mov dword [eax + 0x10], esi
call fcn.0041afd0
xor ebx, ebx
cmp eax, ebx
je 0x418b16
mov edx, eax
mov ecx, esi
call fcn.0041b0e0
lea eax, [ebp - 0x10460]
push eax
mov eax, str.homepagetype
call fcn.0041b2b0
lea ecx, [ebp - 0x10460]
mov edi, eax
push ecx
mov eax, 0x454fc0
call fcn.0041b2b0
push eax
lea esi, [ebp - 0x10460]
call fcn.0041b1f0
mov esi, dword [ebp - 0x10494]
cmp dword [esi + 0x20], ebx
je 0x418b5f
mov edx, dword [esi + 0x24]
mov dword [eax + 0x14], edx
mov ecx, dword [esi + 0x24]
mov dword [ecx + 0x18], eax
jmp 0x418b65
mov dword [eax + 0x14], ebx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [eax + 0x18], ebx
push esi
mov ebx, str.homepagetype50
mov dword [eax + 0x10], esi
call fcn.0041afd0
xor ebx, ebx
cmp eax, ebx
je 0x418b88
mov edx, eax
mov ecx, esi
call fcn.0041b0e0
lea edx, [ebp - 0x10460]
push edx
mov eax, str.homepagetype50
call fcn.0041b2b0
mov edi, eax
lea eax, [ebp - 0x10460]
push eax
mov eax, 0x454fc0
call fcn.0041b2b0
push eax
lea esi, [ebp - 0x10460]
call fcn.0041b1f0
mov esi, dword [ebp - 0x10494]
cmp dword [esi + 0x20], ebx
je 0x418bd1
mov ecx, dword [esi + 0x24]
mov dword [eax + 0x14], ecx
mov edx, dword [esi + 0x24]
mov dword [edx + 0x18], eax
jmp 0x418bd7
mov dword [eax + 0x14], ebx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [eax + 0x18], ebx
push esi
mov ebx, str.startpageinitdisplaycount
mov dword [eax + 0x10], esi
call fcn.0041afd0
xor ebx, ebx
cmp eax, ebx
je 0x418bfa
mov edx, eax
mov ecx, esi
call fcn.0041b0e0
lea eax, [ebp - 0x10460]
push eax
mov eax, str.startpageinitdisplaycount
call fcn.0041b2b0
lea ecx, [ebp - 0x10460]
mov edi, eax
push ecx
mov eax, 0x456598
call fcn.0041b2b0
push eax
lea esi, [ebp - 0x10460]
call fcn.0041b1f0
mov ecx, dword [ebp - 0x10494]
cmp dword [ecx + 0x20], ebx
je 0x418c43
mov edx, dword [ecx + 0x24]
mov dword [eax + 0x14], edx
mov edx, dword [ecx + 0x24]
mov dword [edx + 0x18], eax
jmp 0x418c49
mov dword [eax + 0x14], ebx
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], eax
mov dword [eax + 0x10], ecx
mov dword [eax + 0x18], ebx
lea eax, [ebp - 0x10460]
push eax
mov eax, str.xml_version_1.0__encoding_utf_8_
call fcn.0041b2b0
push 7
mov edi, eax
lea esi, [ebp - 0x10460]
call fcn.0041b150
mov edx, dword [ebp - 0x104a0]
lea ecx, [ebp - 0x10490]
call fcn.0041b050
mov eax, dword [ebp - 0x444]
mov edi, 0x10
cmp dword [ebp - 0x430], edi
jae 0x418c9c
lea eax, [ebp - 0x444]
push eax
lea ecx, [ebp - 0xc0]
push ecx
call fcn.0041ab40
push ebx
push ebx
lea edx, [ebp - 0x10490]
push edx
lea ecx, [ebp - 0xc0]
xor eax, eax
push ecx
push eax
lea eax, [ebp - 0x104a4]
push eax
mov byte [ebp - 4], 3
call fcn.0041dc10
add esp, 0x18
lea esi, [ebp - 0xc0]
call fcn.0041ad50
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 2
call fcn.0041aca0
lea ecx, [ebp - 0x60]
push ecx
mov dword [ebp - 0x60], vtable.std::ios_base.0
call fcn.0042e431
add esp, 4
lea esi, [ebp - 0x10460]
mov byte [ebp - 4], 1
call fcn.0041c090
mov eax, dword [ebp - 0x104b4]
cmp eax, ebx
je 0x418d1b
push eax
call fcn.0042f0d0
add esp, 4
mov dword [ebp - 0x104b4], ebx
mov dword [ebp - 0x104b0], ebx
mov dword [ebp - 0x104ac], ebx
cmp dword [ebp - 0x430], edi
jb 0x418d44
mov edx, dword [ebp - 0x444]
push edx
call fcn.0042f0d0
add esp, 4
mov al, 1
jmp 0x418d84
lea esi, [ebp - 0x10460]
mov byte [ebp - 4], 1
call fcn.0041c090
mov eax, dword [ebp - 0x104b4]
cmp eax, ebx
je 0x418d6a
push eax
call fcn.0042f0d0
add esp, 4
cmp dword [ebp - 0x430], 0x10
jb 0x418d82
mov eax, dword [ebp - 0x444]
push eax
call fcn.0042f0d0
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 - 0x10]
xor ecx, ebp
call fcn.0042ed1f
mov esp, ebp
pop ebp
ret