Function at 0x401090
Capabilities:
Get proxy
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
push 0x40653b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x114
push ebx
push ebp
push esi
push edi
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x25]
mov byte [esp + 0x24], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edi, dword [esp + 0x140]
lea eax, [esp + 0x18]
push eax
push 1
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionInternet_Settings
push 0x80000001
mov dword [esp + 0x28], 4
mov dword [edi], 0x50
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4012c2
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x20]
push edx
push eax
push 0
push str.ProxyEnable
push ecx
call ebx
test eax, eax
jne 0x4012df
mov esi, dword [esp + 0x138]
mov ebp, dword [esp + 0x134]
mov ecx, dword [esp + 0x20]
mov dword [esi], eax
mov eax, 1
cmp ecx, eax
mov dword [ebp], 0xc9
jne 0x4012c4
lea edx, [esp + 0x14]
lea eax, [esp + 0x24]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x20]
push eax
push ecx
push 0
push str.ProxyServer
push edx
mov dword [esp + 0x2c], 0xfe
call ebx
test eax, eax
jne 0x4012c2
lea eax, [esp + 0x24]
mov dword [esi], 1
push eax
lea ecx, [esp + 0x14]
mov dword [ebp], 0x12d
call sub.MFC42.DLL_CString::CString_1
push str.http
lea ecx, [esp + 0x14]
mov dword [esp + 0x130], 0
call sub.MFC42.DLL_CString::Find_1
or ebp, 0xffffffff
cmp eax, ebp
je 0x401243
mov esi, dword [esp + 0x13c]
lea ecx, [esp + eax + 0x29]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov al, byte [esi]
xor ecx, ecx
test al, al
je 0x40129b
mov eax, esi
mov bl, 0x3b
mov dl, byte [eax]
inc ecx
inc eax
cmp dl, 0x3a
je 0x4011f3
cmp byte [eax - 1], bl
je 0x40123c
cmp byte [eax], 0
jne 0x4011db
jmp 0x40129b
add esi, ecx
xor edx, edx
mov byte [esi - 1], 0
mov dword [edi], edx
mov al, byte [esi]
test al, al
je 0x40129b
cmp al, bl
je 0x40129b
cmp edx, 4
jg 0x401234
cmp al, 0x30
jl 0x401234
cmp al, 0x39
jg 0x401234
mov ecx, dword [edi]
inc edx
movsx eax, al
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
mov dword [edi], ecx
mov al, byte [edx + esi]
test al, al
jne 0x401207
jmp 0x40129b
mov dword [edi], 0x50
jmp 0x40129b
mov byte [ecx + esi - 1], 0
jmp 0x40129b
push str.socks
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Find_1
cmp eax, ebp
je 0x40125a
add eax, 6
jmp 0x40126a
mov cl, byte [esp + 0x24]
xor eax, eax
cmp cl, 0x30
jl 0x4012b2
cmp cl, 0x39
jg 0x4012b2
mov esi, dword [esp + 0x13c]
lea edx, [esp + eax + 0x24]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov cl, byte [esi]
xor eax, eax
test cl, cl
je 0x40129b
mov cl, byte [eax + esi]
inc eax
cmp cl, 0x3a
je 0x401296
cmp byte [eax + esi], 0
jne 0x401285
jmp 0x40129b
mov byte [eax + esi - 1], 0
lea ecx, [esp + 0x10]
mov dword [esp + 0x12c], ebp
call sub.MFC42.DLL_CString::CString
mov eax, 1
jmp 0x4012c4
lea ecx, [esp + 0x10]
mov dword [esp + 0x12c], ebp
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov ecx, dword [esp + 0x124]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x120
ret 0x10
mov eax, 1
jmp 0x4012c4