Function at 0x409e35
Capabilities:
Connect to wmi namespace via wbemlocator
Delete registry value
Get proxy
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
sub esp, 0x6c
mov eax, 0x4268bd
call fcn.0041362c
sub esp, 0xa00
push ebx
xor ebx, ebx
cmp byte [0x434044], bl
jne 0x409e66
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop ebx
mov dword fs:[0], ecx
add ebp, 0x70
leave
ret
push esi
push edi
mov dword [ebp + 0x4c], ebx
lea eax, [ebp + 0x4c]
push eax
mov dword [ebp - 4], ebx
call fcn.0040cbeb
pop ecx
test eax, eax
jge 0x409e8e
push 3
pop esi
push dword [ebp + 0x4c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
pop edi
mov eax, esi
pop esi
jmp 0x409e56
push str.ConfigOSSProxySettings
lea ecx, [ebp + 0x4c]
call fcn.004029c3
xor eax, eax
push 0x7fe
mov word [ebp - 0xa0c], ax
lea eax, [ebp - 0xa0a]
push ebx
push eax
call fcn.00413a00
add esp, 0xc
mov dword [ebp + 0x50], 0x400
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x48], ebx
push 0x20019
push dword [ebp + 0x4c]
xor edi, edi
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp + 0x44]
inc edi
mov byte [ebp - 4], 1
call fcn.004015be
test eax, eax
jne 0x409f06
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp - 0xa0c]
push eax
push 0x4290f0
lea ecx, [ebp + 0x44]
call fcn.00401637
lea ecx, [ebp + 0x44]
call fcn.004015a3
lea eax, [ebp - 0x178]
mov dword [ebp - 0x17c], eax
push 3
lea eax, [ebp - 0xa0c]
push eax
lea ecx, [ebp - 0x17c]
call fcn.00402f79
push dword [ebp - 0x17c]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.004060ab
lea eax, [ebp - 0x178]
mov byte [ebp - 4], 4
cmp dword [ebp - 0x17c], eax
je 0x409f56
push dword [ebp - 0x17c]
call fcn.00412862
pop ecx
push ebx
push ebx
push 0x4290ec
lea ecx, [ebp - 0xa4]
call fcn.004069a6
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 5
call fcn.00406053
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 6
mov byte [ebp + 0x6e], bl
call fcn.00408abe
mov byte [ebp - 4], 7
jmp 0x409fc4
push 0x4290e8
lea ecx, [ebp - 0x1b4]
call fcn.00403c5b
test eax, eax
jne 0x409fb9
mov byte [ebp + 0x6e], 1
lea ecx, [ebp - 0x20c]
call fcn.00407c9c
lea eax, [ebp - 0x16c]
push eax
lea ecx, [ebp - 0xf8]
call fcn.00408b1f
push eax
lea ecx, [ebp - 0x20c]
call fcn.004023ff
neg al
sbb al, al
inc al
lea ecx, [ebp - 0x16c]
mov byte [ebp + 0x6f], al
call fcn.00404871
cmp byte [ebp + 0x6f], bl
jne 0x409fa1
lea ecx, [ebp - 0x20c]
mov byte [ebp - 4], 6
call fcn.00404871
lea ecx, [ebp + 0x28]
call fcn.004079b8
mov dword [ebp + 0x64], ebx
lea eax, [ebp + 0x64]
push eax
push 0x42e0fc
push edi
push ebx
push 0x42e1cc
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov esi, eax
cmp esi, ebx
jge 0x40a080
mov eax, dword [ebp + 0x64]
mov byte [ebp - 4], 8
cmp eax, ebx
je 0x40a042
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp + 0x28]
call fcn.00407eba
push dword [ebp + 0x28]
call fcn.004126c6
pop ecx
lea ecx, [ebp - 0xe8]
call fcn.00404888
lea ecx, [ebp - 0xa4]
call fcn.00404888
push ebx
push edi
lea ecx, [ebp - 0x28]
call fcn.00403cab
lea ecx, [ebp + 0x44]
call fcn.004015a3
jmp 0x409e7f
mov esi, dword [ebp + 0x64]
cmp esi, ebx
jne 0x40a0ca
lea ecx, [ebp + 0x28]
call fcn.00407eba
push dword [ebp + 0x28]
call fcn.004126c6
pop ecx
lea ecx, [ebp - 0xe8]
call fcn.00404888
lea ecx, [ebp - 0xa4]
call fcn.00404888
push ebx
push edi
lea ecx, [ebp - 0x28]
call fcn.00403cab
lea ecx, [ebp + 0x44]
call fcn.004015a3
mov esi, 0x80004005
jmp 0x409e7f
mov dword [ebp + 0x68], ebx
push str.ROOTCIMV2
lea ecx, [ebp + 0x50]
mov byte [ebp - 4], 0xa
call fcn.00402834
mov eax, dword [eax]
mov byte [ebp - 4], 0xb
cmp eax, ebx
je 0x40a0ec
mov eax, dword [eax]
jmp 0x40a0ee
xor eax, eax
mov ecx, dword [esi]
lea edx, [ebp + 0x68]
push edx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push esi
call dword [ecx + 0xc]
mov ecx, dword [ebp + 0x50]
mov esi, eax
cmp ecx, ebx
je 0x40a10d
call fcn.004040ec
cmp esi, ebx
jge 0x40a12b
mov eax, dword [ebp + 0x68]
mov byte [ebp - 4], 9
cmp eax, ebx
je 0x40a031
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x40a031
cmp dword [ebp + 0x68], ebx
jne 0x40a14a
mov eax, dword [ebp + 0x64]
mov byte [ebp - 4], 8
cmp eax, ebx
je 0x40a087
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x40a087
push ebx
push ebx
push 3
push 3
push ebx
push ebx
push 0xa
push dword [ebp + 0x68]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
mov esi, eax
cmp esi, ebx
jl 0x40a111
mov dword [ebp + 0x40], ebx
mov esi, dword [ebp + 0x68]
push str.SELECT_Name__SID_FROM_Win32_UserAccount
lea ecx, [ebp + 0x5c]
mov byte [ebp - 4], 0xc
call fcn.004027e0
mov edi, eax
push 0x4290a0
lea ecx, [ebp + 0x58]
mov byte [ebp - 4], 0xd
call fcn.004027e0
mov ecx, dword [edi]
mov byte [ebp - 4], 0xe
cmp ecx, ebx
je 0x40a19b
mov ecx, dword [ecx]
jmp 0x40a19d
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebx
je 0x40a1a7
mov eax, dword [eax]
jmp 0x40a1a9
xor eax, eax
mov edx, dword [esi]
lea edi, [ebp + 0x40]
push edi
push ebx
push 0x30
push ecx
push eax
push esi
call dword [edx + 0x50]
mov ecx, dword [ebp + 0x58]
mov esi, eax
mov dword [ebp], esi
cmp ecx, ebx
je 0x40a1cc
call fcn.004040ec
mov dword [ebp + 0x58], ebx
mov ecx, dword [ebp + 0x5c]
cmp ecx, ebx
je 0x40a1d8
call fcn.004040ec
cmp esi, ebx
jge 0x40a23e
mov eax, dword [ebp + 0x40]
mov byte [ebp - 4], 0xa
cmp eax, ebx
je 0x40a1ed
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp + 0x68]
mov byte [ebp - 4], 9
cmp eax, ebx
je 0x40a1fe
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp + 0x64]
mov byte [ebp - 4], 8
cmp eax, ebx
je 0x40a20f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp + 0x28]
call fcn.00407eba
push dword [ebp + 0x28]
call fcn.004126c6
pop ecx
lea ecx, [ebp - 0xe8]
call fcn.00404888
lea ecx, [ebp - 0xa4]
call fcn.00404888
push ebx
push 1
jmp 0x40a06b
mov dword [ebp + 0x60], ebx
mov byte [ebp - 4], 0xf
mov dword [ebp + 0x50], ebx
cmp dword [ebp + 0x40], ebx
je 0x40a2ea
cmp dword [ebp + 0x60], ebx
je 0x40a260
push ebx
lea eax, [ebp + 0x60]
push eax
call fcn.0040148e
mov eax, dword [ebp + 0x40]
mov ecx, dword [eax]
lea edx, [ebp + 0x50]
push edx
lea edx, [ebp + 0x60]
push edx
push 1
push 0x2710
push eax
call dword [ecx + 0x10]
mov esi, eax
cmp esi, ebx
jl 0x40a2ea
cmp dword [ebp + 0x50], 1
jne 0x40a2e2
cmp dword [ebp + 0x60], ebx
je 0x40a2e2
push ebx
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x48], 0xf
call fcn.004036db
lea ecx, [ebp - 0x44]
call fcn.0040434b
mov ecx, dword [ebp + 0x60]
lea eax, [ebp - 0x60]
push eax
push str.Name
mov byte [ebp - 4], 0x10
call fcn.0040666b
mov ecx, dword [ebp + 0x60]
lea eax, [ebp - 0x44]
push eax
push 0x42908c
call fcn.0040666b
add esp, 0x10
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 0x28]
call fcn.00409233
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0xf
call fcn.00404888
cmp esi, ebx
je 0x40a251
mov eax, dword [ebp + 0x60]
mov byte [ebp - 4], 0xc
cmp eax, ebx
je 0x40a2fb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp + 0x40]
mov byte [ebp - 4], 0xa
cmp eax, ebx
je 0x40a30c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea eax, [ebp + 0x28]
push eax
push dword [ebp + 0x34]
lea ecx, [ebp + 0x20]
call fcn.004039c4
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x14], eax
lea eax, [ebp + 0x28]
push eax
push dword [ebp + 0x38]
lea ecx, [ebp + 0x20]
call fcn.004039c4
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp + 0x10]
call fcn.004027b9
test al, al
jne 0x40a4e6
mov edi, dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov esi, str.ProxyServer
lea ecx, [ebp + 0x10]
call fcn.00401be3
cmp dword [eax + 0x34], 0x10
jb 0x40a368
mov eax, dword [eax + 0x20]
jmp 0x40a36b
add eax, 0x20
push eax
lea ecx, [ebp + 0x58]
call fcn.004029e0
push str.SoftwareMicrosoftWindowsCurrentVersionInternet_Settings
lea ecx, [ebp + 0x58]
mov byte [ebp - 4], 0x11
call fcn.004029c3
xor eax, eax
push 0x9e
mov word [ebp - 0x198], ax
lea eax, [ebp - 0x196]
push ebx
push eax
mov dword [ebp + 0x5c], ebx
call fcn.00413a00
add esp, 0xc
lea eax, [ebp + 0x54]
push eax
push 0x2001f
push ebx
push dword [ebp + 0x58]
push SysStringLen
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, ebx
jne 0x40a470
lea eax, [ebp + 4]
push eax
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0xc]
push eax
push ebx
push str.ProxyEnable
push dword [ebp + 0x54]
mov dword [ebp + 4], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x198]
push eax
lea eax, [ebp + 0xc]
push eax
push ebx
push esi
push dword [ebp + 0x54]
mov dword [ebp + 8], 0x50
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp - 0x198]
push eax
lea ecx, [ebp - 0x44]
call fcn.004057c9
cmp dword [ebp + 0x5c], ebx
je 0x40a45c
push 0xe
push ebx
push str.localhost:8254
lea ecx, [ebp - 0x44]
call fcn.00402cee
cmp eax, 0xffffffff
je 0x40a45c
push 4
lea eax, [ebp + 0x5c]
push eax
push 4
push ebx
push str.ProxyEnable
push dword [ebp + 0x54]
mov dword [ebp + 0x5c], ebx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push esi
push dword [ebp + 0x54]
call edi
push 0x428fa4
push dword [ebp + 0x54]
call edi
push dword [ebp + 0x54]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ebx
push 1
lea ecx, [ebp - 0x44]
call fcn.004038ff
push 0x2001f
push dword [ebp + 0x4c]
lea ecx, [ebp + 0x18]
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
call fcn.004015be
test eax, eax
jne 0x40a4a6
cmp byte [ebp + 0x6e], bl
jne 0x40a49e
push 0x4290f0
push dword [ebp + 0x18]
call edi
lea ecx, [ebp + 0x18]
call fcn.004015a3
lea ecx, [ebp + 0x18]
call fcn.004015a3
push dword [ebp + 0x58]
mov byte [ebp - 4], 0xa
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea ecx, [ebp + 0x10]
call fcn.00401bb4
lea eax, [ebp + 0x28]
push eax
push dword [ebp + 0x38]
lea ecx, [ebp + 0x20]
call fcn.004039c4
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp + 0x10]
call fcn.004027b9
test al, al
je 0x40a355
mov eax, dword [ebp + 0x68]
mov byte [ebp - 4], 9
cmp eax, ebx
je 0x40a4f7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp + 0x64]
mov byte [ebp - 4], 8
cmp eax, ebx
je 0x40a508
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp + 0x28]
call fcn.00407eba
push dword [ebp + 0x28]
call fcn.004126c6
pop ecx
lea ecx, [ebp - 0xe8]
call fcn.00404888
lea ecx, [ebp - 0xa4]
call fcn.00404888
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.00403cab
lea ecx, [ebp + 0x44]
call fcn.004015a3
mov esi, dword [ebp]
jmp 0x409e7f