Function at 0x404090
Capabilities:
Check http status code
Create http request
Read data from internet
Receive data
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4730e6
mov eax, dword fs:[0]
push eax
sub esp, 0xc84
mov eax, dword [0x4a7534]
xor eax, esp
mov dword [esp + 0xc80], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a7534]
xor eax, esp
push eax
lea eax, [esp + 0xc98]
mov dword fs:[0], eax
mov eax, dword [esp + 0xcac]
mov ebp, dword [esp + 0xca8]
xor ebx, ebx
mov esi, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], eax
mov byte [esp + 0x14], bl
mov dword [esp + 0x90], 0xf
mov dword [esp + 0x8c], ebx
mov byte [esp + 0x7c], bl
push ebx
push ebx
push ebx
push ebx
push str.SOGOU_UPDATER
mov dword [esp + 0xcb4], ebx
call dword [sym.imp.WININET.dll_InternetOpenW]
mov edi, eax
cmp edi, ebx
mov dword [esp + 0x24], edi
jne 0x404137
push 0x4822e0
mov ecx, esi
call fcn.0046c2f0
mov ecx, eax
call fcn.0046c360
jmp 0x40455b
mov esi, dword [sym.imp.WININET.dll_InternetSetOptionW]
push 4
lea ecx, [esp + 0x1c]
push ecx
push 5
push edi
mov dword [esp + 0x28], 0x4e20
call esi
push 4
lea edx, [esp + 0x1c]
push edx
push 7
push edi
call esi
push 4
lea eax, [esp + 0x1c]
push eax
push 2
push edi
call esi
push 4
lea ecx, [esp + 0x1c]
push ecx
push 6
push edi
call esi
push 4
lea edx, [esp + 0x1c]
push edx
push 8
push edi
call esi
push 0x3fe
lea eax, [esp + 0x89a]
push ebx
push eax
mov word [esp + 0x8a0], bx
call fcn.004498f0
add esp, 0xc
push str.Accept_Encoding:_gzip_deflate_r_nAccept:_text_html_application_xhtmlxml_application_xml_q0.9___q0.8_r_nAccept_Language:_zh_cn_zh_q0.5_r_nAccept_Charset:_gb2312_utf_8_q0.7__q0.7_r_nKeep_Alive:_300_r_nConnection:_keep_alive_r_n
lea ecx, [esp + 0x898]
push 0x200
push ecx
call fcn.00446633
add esp, 0xc
push ebx
push 0x84000000
push eax
lea edx, [esp + 0x8a0]
push edx
push ebp
push edi
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
mov ebp, eax
cmp ebp, ebx
mov dword [esp + 0x30], ebp
jne 0x404245
push 0x7fe
lea eax, [esp + 0x9a]
push ebx
push eax
mov word [esp + 0xa0], bx
call fcn.004498f0
add esp, 0xc
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x98]
push edx
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], 0x400
call dword [sym.imp.WININET.dll_InternetGetLastResponseInfoW]
lea ecx, [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x20]
push 0x4824b8
call fcn.0046c2f0
mov ecx, eax
call fcn.0046c360
mov ecx, eax
call fcn.0046c360
jmp 0x40454b
push ebx
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x34]
push eax
push 0x20000013
push ebp
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], 4
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
jne 0x404294
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp + 0x1c]
push eax
push str.HttpQueryInfo
call fcn.0046c2f0
mov ecx, eax
call fcn.0046c360
mov ecx, eax
call fcn.0046c380
jmp 0x40454b
cmp dword [esp + 0x2c], 0xc8
je 0x4042c4
mov ecx, dword [esp + 0x1c]
push 0x4824f0
call fcn.0046c2f0
mov ecx, eax
call fcn.0046c360
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, eax
call fcn.0046c380
jmp 0x40454b
lea edi, [esp + 0x78]
call fcn.00410610
mov esi, dword [sym.imp.WININET.dll_InternetReadFile]
mov dword [esp + 0x28], ebx
jmp 0x4042e0
push 0x3ff
lea edx, [esp + 0x99]
push ebx
push edx
mov byte [esp + 0xa0], bl
call fcn.004498f0
add esp, 0xc
lea eax, [esp + 0x28]
push eax
push 0x3ff
lea ecx, [esp + 0x9c]
push ecx
push ebp
call esi
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x94]
mov byte [esp + edx + 0x94], bl
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x404327
sub eax, edx
push eax
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x80]
call fcn.00410ed0
cmp dword [esp + 0x28], ebx
jne 0x4042e0
mov ebp, dword [sym.imp.SHLWAPI.dll_StrToIntW]
jmp 0x404362
xor ebx, ebx
cmp dword [esp + 0x8c], ebx
jbe 0x40453e
lea ecx, [esp + 0x78]
push ecx
lea ebx, [esp + 0x18]
mov byte [esp + 0x18], 0xa
call fcn.00410b50
mov esi, eax
cmp esi, dword [esp + 0x8c]
jbe 0x404392
call fcn.00446243
mov eax, dword [esp + 0x7c]
mov edi, 0x10
cmp dword [esp + 0x90], edi
jae 0x4043a8
lea eax, [esp + 0x7c]
xor ebx, ebx
push 0x7fe
lea edx, [esp + 0x9a]
push ebx
mov byte [eax + esi], bl
push edx
mov word [esp + 0xa0], bx
call fcn.004498f0
mov eax, dword [esp + 0x88]
add esp, 0xc
cmp dword [esp + 0x90], edi
jae 0x4043df
lea eax, [esp + 0x7c]
push 0x400
lea ecx, [esp + 0x98]
push ecx
push esi
push eax
push ebx
push 0x3a8
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
add esi, 1
push esi
lea esi, [esp + 0x60]
lea ecx, [esp + 0x7c]
call fcn.004106b0
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x84]
mov byte [esp + 0xcac], 1
call fcn.00410970
mov byte [esp + 0xca0], bl
cmp dword [esp + 0x74], edi
jb 0x40443d
mov edx, dword [esp + 0x60]
push edx
call fcn.00445f7c
add esp, 4
lea eax, [esp + 0x94]
push 0x7c
push eax
call fcn.00446ef4
add esp, 8
cmp eax, ebx
je 0x404360
mov word [eax], 0
add eax, 2
push 0x7c
push eax
mov esi, eax
call fcn.00446ef4
mov edi, eax
add esp, 8
test edi, edi
je 0x404360
xor eax, eax
xor ebx, ebx
mov word [edi], bx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
push esi
mov word [esi + 8], bx
call ebp
sub eax, 0x76c
lea ecx, [esi + 0xa]
mov dword [esp + 0x4c], eax
push ecx
mov word [esi + 0xe], bx
call ebp
sub eax, 1
lea edx, [esi + 0x10]
mov dword [esp + 0x48], eax
push edx
mov word [esi + 0x14], bx
call ebp
mov dword [esp + 0x44], eax
lea eax, [esi + 0x16]
push eax
mov word [esi + 0x1a], bx
call ebp
lea ecx, [esi + 0x1c]
mov dword [esp + 0x40], eax
push ecx
mov word [esi + 0x20], bx
call ebp
add esi, 0x22
push esi
mov dword [esp + 0x40], eax
call ebp
lea edx, [esp + 0x38]
push edx
mov dword [esp + 0x3c], eax
call fcn.004479eb
lea edx, [edi + 2]
mov ecx, edx
add esp, 4
lea edi, [ecx + 2]
jmp 0x404510
mov si, word [ecx]
add ecx, 2
cmp si, bx
jne 0x404510
sub ecx, edi
sar ecx, 1
je 0x404360
mov ecx, dword [esp + 0x20]
push eax
push edx
lea eax, [esp + 0x9c]
push eax
push ecx
call fcn.0041b900
jmp 0x404360
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov byte [esp + 0x14], 1
cmp ebp, ebx
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
je 0x404558
push ebp
call esi
push edi
call esi
cmp dword [esp + 0x90], 0x10
jb 0x404572
mov edx, dword [esp + 0x7c]
push edx
call fcn.00445f7c
add esp, 4
mov al, byte [esp + 0x14]
mov ecx, dword [esp + 0xc98]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xc80]
xor ecx, esp
call fcn.0044610a
add esp, 0xc90
ret