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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c8258
mov eax, dword fs:[0]
push eax
mov eax, 0x1071c
call fcn.004b7690
mov eax, dword [0x4fbf50]
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 - 0x628]
push eax
mov esi, ecx
push str.APPDATA
mov dword [ebp - 0x106d4], esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
xor ebx, ebx
xor ecx, ecx
mov dword [ebp - 0x630], 7
mov dword [ebp - 0x634], ebx
mov word [ebp - 0x644], cx
lea eax, [ebp - 0x628]
mov dword [ebp - 4], ebx
lea edx, [eax + 2]
jmp 0x4439b0
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4439b0
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x628]
push edx
lea ecx, [ebp - 0x644]
call fcn.0040b420
push 0x19
push str.SogouExplorerconfig.xml
lea ecx, [ebp - 0x644]
call fcn.0040b420
push 0x103
lea eax, [ebp - 0x21f]
push ebx
push eax
mov byte [ebp - 0x220], bl
call sub.MSVCR100.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x106d0]
push ecx
push 0xf003f
push ebx
push str.SoftwareSogouExplorer
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x443b02
push 0x206
lea eax, [ebp - 0x426]
xor edx, edx
push ebx
push eax
mov word [ebp - 0x428], dx
call sub.MSVCR100.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x106d8]
push ecx
mov ecx, dword [ebp - 0x106d0]
lea edx, [ebp - 0x428]
push edx
lea eax, [ebp - 0x106cc]
push eax
push ebx
push 0x4f1ab4
push ecx
mov dword [ebp - 0x106cc], 1
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edx, dword [ebp - 0x106d0]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x103
lea eax, [ebp - 0x117]
push ebx
push eax
mov byte [ebp - 0x118], bl
call sub.MSVCR100.dll_memset
add esp, 0xc
cmp dword [esi + 0x14], 8
jb 0x443aa6
mov eax, dword [esi]
jmp 0x443aa8
mov eax, esi
mov edi, dword [sym.imp.MSVCR100.dll__snprintf]
push eax
lea ecx, [ebp - 0x428]
push ecx
push str._s_3_s
lea edx, [ebp - 0x118]
push 0x104
push edx
call edi
lea eax, [ebp - 0x118]
add esp, 0x14
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x443ad5
sub eax, edx
mov edx, eax
lea esi, [ebp - 0x118]
call fcn.00445610
push eax
push 0x4eda2c
lea eax, [ebp - 0x220]
push 0x104
push eax
call edi
add esp, 0x10
cmp dword [ebp - 0x630], 8
mov eax, dword [ebp - 0x644]
jae 0x443b17
lea eax, [ebp - 0x644]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x444076
push 6
push str.GB2312
lea ecx, [ebp - 0x10724]
mov dword [ebp - 0x10710], 0xf
mov dword [ebp - 0x10714], ebx
mov byte [ebp - 0x10724], bl
call fcn.00403920
lea ecx, [ebp - 0x644]
push ecx
lea ecx, [ebp - 0x10724]
lea ebx, [ebp - 0x660]
mov byte [ebp - 4], 1
call fcn.0040d2a0
add esp, 4
mov edi, 0x10
mov byte [ebp - 4], 2
cmp dword [eax + 0x14], edi
jb 0x443b7d
mov eax, dword [eax]
mov ecx, eax
lea esi, [ebp - 0x106ec]
call fcn.00445930
cmp dword [ebp - 0x64c], edi
jb 0x443ba2
mov edx, dword [ebp - 0x660]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor ebx, ebx
mov esi, 0xf
mov dword [ebp - 0x64c], esi
mov dword [ebp - 0x650], ebx
mov byte [ebp - 0x660], bl
cmp dword [ebp - 0x10710], edi
jb 0x443bd3
mov eax, dword [ebp - 0x10724]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
lea ecx, [ebp - 0x1068c]
mov eax, ecx
neg eax
and eax, 3
lea edx, [ebp + eax - 0x1068c]
lea eax, [ebp - 0x68c]
mov dword [ebp - 0x10710], esi
mov dword [ebp - 0x10714], ebx
mov byte [ebp - 0x10724], bl
mov dword [ebp - 0x106c8], ebx
mov dword [ebp - 0x106c4], ebx
mov dword [ebp - 0x106b8], ebx
mov dword [ebp - 0x106b4], ebx
mov dword [ebp - 0x106b0], ebx
mov dword [ebp - 0x106a8], ebx
mov dword [ebp - 0x68c], ebx
mov dword [ebp - 0x688], ebx
mov dword [ebp - 0x10698], ecx
mov dword [ebp - 0x10694], edx
mov dword [ebp - 0x10690], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x106ec]
push ecx
lea edi, [ebp - 0x106c8]
call fcn.00446ae0
mov eax, dword [ebp - 0x106b0]
mov dword [ebp - 0x106d8], eax
cmp eax, ebx
je 0x444053
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x106cc], esi
cmp esi, ebx
je 0x444053
push esi
mov ebx, str.homepage
call fcn.00445ae0
xor ebx, ebx
cmp eax, ebx
je 0x443c96
mov edx, eax
mov ecx, esi
call fcn.00445bf0
lea edx, [ebp - 0x10698]
push edx
mov eax, str.homepage
call fcn.00445dc0
push 6
push str.GB2312
lea ecx, [ebp - 0x10708]
mov edi, eax
mov dword [ebp - 0x106f4], 0xf
mov dword [ebp - 0x106f8], ebx
mov byte [ebp - 0x10708], bl
call fcn.00403920
mov eax, dword [ebp - 0x106d4]
push eax
lea ecx, [ebp - 0x10708]
lea ebx, [ebp - 0x67c]
mov byte [ebp - 4], 7
call fcn.0040d2a0
add esp, 4
mov ebx, 0x10
mov byte [ebp - 4], 8
cmp dword [eax + 0x14], ebx
jb 0x443d00
mov eax, dword [eax]
lea ecx, [ebp - 0x10698]
push ecx
call fcn.00445dc0
mov esi, eax
cmp dword [ebp - 0x668], ebx
jb 0x443d26
mov edx, dword [ebp - 0x67c]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor ebx, ebx
mov byte [ebp - 4], 6
cmp dword [ebp - 0x106f4], 0x10
mov dword [ebp - 0x668], 0xf
mov dword [ebp - 0x66c], ebx
mov byte [ebp - 0x67c], bl
jb 0x443d5b
mov eax, dword [ebp - 0x10708]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
push esi
lea esi, [ebp - 0x10698]
mov dword [ebp - 0x106f4], 0xf
mov dword [ebp - 0x106f8], ebx
mov byte [ebp - 0x10708], bl
call fcn.00445d00
mov esi, dword [ebp - 0x106cc]
cmp dword [esi + 0x20], ebx
je 0x443d96
mov ecx, dword [esi + 0x24]
mov dword [eax + 0x14], ecx
mov edx, dword [esi + 0x24]
mov dword [edx + 0x18], eax
jmp 0x443d9c
mov dword [eax + 0x14], ebx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [eax + 0x18], ebx
push esi
mov ebx, 0x4f1ac4
mov dword [eax + 0x10], esi
call fcn.00445ae0
xor ebx, ebx
cmp eax, ebx
je 0x443dbf
mov edx, eax
mov ecx, esi
call fcn.00445bf0
lea eax, [ebp - 0x10698]
push eax
mov eax, 0x4f1ac4
call fcn.00445dc0
lea ecx, [ebp - 0x10698]
mov edi, eax
push ecx
lea eax, [ebp - 0x220]
call fcn.00445dc0
push eax
lea esi, [ebp - 0x10698]
call fcn.00445d00
mov esi, dword [ebp - 0x106cc]
cmp dword [esi + 0x20], ebx
je 0x443e09
mov edx, dword [esi + 0x24]
mov dword [eax + 0x14], edx
mov ecx, dword [esi + 0x24]
mov dword [ecx + 0x18], eax
jmp 0x443e0f
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.00445ae0
xor ebx, ebx
cmp eax, ebx
je 0x443e32
mov edx, eax
mov ecx, esi
call fcn.00445bf0
lea edx, [ebp - 0x10698]
push edx
mov eax, str.homepagetype
call fcn.00445dc0
mov edi, eax
lea eax, [ebp - 0x10698]
push eax
mov eax, 0x4ef2e4
call fcn.00445dc0
push eax
lea esi, [ebp - 0x10698]
call fcn.00445d00
mov esi, dword [ebp - 0x106cc]
cmp dword [esi + 0x20], ebx
je 0x443e7b
mov ecx, dword [esi + 0x24]
mov dword [eax + 0x14], ecx
mov edx, dword [esi + 0x24]
mov dword [edx + 0x18], eax
jmp 0x443e81
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.00445ae0
xor ebx, ebx
cmp eax, ebx
je 0x443ea4
mov edx, eax
mov ecx, esi
call fcn.00445bf0
lea eax, [ebp - 0x10698]
push eax
mov eax, str.homepagetype50
call fcn.00445dc0
lea ecx, [ebp - 0x10698]
mov edi, eax
push ecx
mov eax, 0x4ef2e4
call fcn.00445dc0
push eax
lea esi, [ebp - 0x10698]
call fcn.00445d00
mov esi, dword [ebp - 0x106cc]
cmp dword [esi + 0x20], ebx
je 0x443eed
mov edx, dword [esi + 0x24]
mov dword [eax + 0x14], edx
mov ecx, dword [esi + 0x24]
mov dword [ecx + 0x18], eax
jmp 0x443ef3
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.00445ae0
xor ebx, ebx
cmp eax, ebx
je 0x443f16
mov edx, eax
mov ecx, esi
call fcn.00445bf0
lea edx, [ebp - 0x10698]
push edx
mov eax, str.startpageinitdisplaycount
call fcn.00445dc0
mov edi, eax
lea eax, [ebp - 0x10698]
push eax
mov eax, 0x4f1b04
call fcn.00445dc0
push eax
lea esi, [ebp - 0x10698]
call fcn.00445d00
mov ecx, dword [ebp - 0x106cc]
cmp dword [ecx + 0x20], ebx
je 0x443f5f
mov edx, dword [ecx + 0x24]
mov dword [eax + 0x14], edx
mov edx, dword [ecx + 0x24]
mov dword [edx + 0x18], eax
jmp 0x443f65
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 - 0x10698]
push eax
mov eax, str.xml_version_1.0__encoding_utf_8_
call fcn.00445dc0
push 7
mov edi, eax
lea esi, [ebp - 0x10698]
call fcn.00445c60
mov edx, dword [ebp - 0x106d8]
lea ecx, [ebp - 0x106c8]
call fcn.00445b60
cmp dword [ebp - 0x630], 8
mov eax, dword [ebp - 0x644]
jae 0x443fb4
lea eax, [ebp - 0x644]
push eax
lea ecx, [ebp - 0xc0]
push ecx
call fcn.0040a710
lea ecx, [ebp - 0xc0]
push ecx
xor eax, eax
push eax
push ebx
xor ecx, ecx
lea eax, [ebp - 0x106c8]
lea edi, [ebp - 0x106dc]
mov byte [ebp - 4], 9
call fcn.00447800
add esp, 0xc
lea edx, [ebp - 0xc0]
push edx
call fcn.0040a800
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 6
call fcn.00409a70
lea esi, [ebp - 0x10698]
mov byte [ebp - 4], 5
call fcn.00446120
mov eax, dword [ebp - 0x106ec]
cmp eax, ebx
je 0x444024
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
cmp dword [ebp - 0x630], 8
mov dword [ebp - 0x106ec], ebx
mov dword [ebp - 0x106e8], ebx
mov dword [ebp - 0x106e4], ebx
jb 0x44404f
mov eax, dword [ebp - 0x644]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov al, 1
jmp 0x444091
lea esi, [ebp - 0x10698]
mov byte [ebp - 4], 5
call fcn.00446120
mov eax, dword [ebp - 0x106ec]
cmp eax, ebx
je 0x444076
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
cmp dword [ebp - 0x630], 8
jb 0x44408f
mov ecx, dword [ebp - 0x644]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
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.004b7299
mov esp, ebp
pop ebp
ret