Function at 0x4050a0
Capabilities:
Access firewall policy via inetfwpolicy2
Access firewall rule properties via inetfwrule
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x844
mov eax, dword [0x447044]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x7fe
mov esi, ecx
xor ebx, ebx
lea ecx, [ebp - 0x806]
xor eax, eax
push ebx
push ecx
mov edi, edx
mov word [ebp - 0x808], ax
call fcn.004272d0
add esp, 0xc
mov dword [ebp - 0x828], ebx
mov dword [ebp - 0x81c], ebx
mov dword [ebp - 0x80c], ebx
mov dword [ebp - 0x820], ebx
mov ebx, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
push esi
call ebx
push edi
mov dword [ebp - 0x824], eax
call ebx
push edi
push 0x438a04
mov dword [ebp - 0x814], eax
mov dword [ebp - 0x818], 0
call fcn.0041f6d7
add esp, 8
test eax, eax
jne 0x405130
mov dword [ebp - 0x820], 1
push 2
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov edi, eax
mov dword [ebp - 0x838], edi
cmp edi, 0x80010106
je 0x40518e
test edi, edi
jns 0x40518e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
lea edx, [ebp - 0x808]
push 0x438a10
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [ebp - 0x808]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [ebp - 0x808]
push ecx
call fcn.004042f0
add esp, 4
xor esi, esi
jmp 0x405a6f
mov ebx, dword [sym.imp.ole32.dll_CoCreateInstance]
lea edx, [ebp - 0x828]
push edx
push 0x43bd20
push 1
push 0
push 0x43bd10
call ebx
mov edi, eax
test edi, edi
jns 0x4051f1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
lea eax, [ebp - 0x808]
push 0x438aa8
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp - 0x808]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea edx, [ebp - 0x808]
push edx
call fcn.004042f0
add esp, 4
xor esi, esi
jmp 0x405a6f
mov eax, dword [ebp - 0x828]
mov ecx, dword [eax]
lea edx, [ebp - 0x81c]
push edx
push eax
mov eax, dword [ecx + 0x48]
call eax
mov edi, eax
test edi, edi
jns 0x40524c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
lea ecx, [ebp - 0x808]
push 0x438b58
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea edx, [ebp - 0x808]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea eax, [ebp - 0x808]
push eax
call fcn.004042f0
add esp, 4
xor esi, esi
jmp 0x405a6f
mov eax, dword [ebp - 0x81c]
mov ecx, dword [eax]
lea edx, [ebp - 0x80c]
push edx
mov edx, dword [ebp - 0x824]
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
js 0x40590c
mov eax, dword [ebp - 0x80c]
mov ecx, dword [eax]
lea edx, [ebp - 0x834]
push edx
push eax
mov eax, dword [ecx + 0x6c]
call eax
mov edi, eax
test edi, edi
jns 0x4052cc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push esi
lea ecx, [ebp - 0x808]
push 0x438c00
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
lea edx, [ebp - 0x808]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea eax, [ebp - 0x808]
push eax
call fcn.004042f0
add esp, 4
xor esi, esi
jmp 0x405a6f
mov eax, dword [ebp - 0x834]
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp eax, 1
je 0x405343
push 1
push eax
push esi
lea ecx, [ebp - 0x808]
push 0x438ca8
push ecx
call edi
add esp, 0x14
lea edx, [ebp - 0x808]
push edx
call ebx
lea eax, [ebp - 0x808]
push eax
call fcn.004042f0
mov eax, dword [ebp - 0x80c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x70]
add esp, 4
push 1
push eax
call edx
mov dword [ebp - 0x810], eax
test eax, eax
jns 0x405343
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x810]
push eax
push esi
push 0x438d38
jmp 0x405668
mov eax, dword [ebp - 0x80c]
mov ecx, dword [eax]
lea edx, [ebp - 0x840]
push edx
push eax
mov eax, dword [ecx + 0xa4]
call eax
mov dword [ebp - 0x810], eax
test eax, eax
jns 0x40537e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
push esi
push 0x438de0
jmp 0x405848
mov eax, dword [ebp - 0x840]
cmp eax, 1
je 0x4053ec
push 1
push eax
push esi
lea edx, [ebp - 0x808]
push 0x438e80
push edx
call edi
add esp, 0x14
lea eax, [ebp - 0x808]
push eax
call ebx
lea ecx, [ebp - 0x808]
push ecx
call fcn.004042f0
mov eax, dword [ebp - 0x80c]
mov edx, dword [eax]
add esp, 4
push 1
push eax
mov eax, dword [edx + 0xa8]
call eax
mov dword [ebp - 0x810], eax
test eax, eax
jns 0x4053ec
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
push esi
push 0x438f10
jmp 0x405848
mov eax, dword [ebp - 0x80c]
mov edx, dword [eax]
mov edx, dword [edx + 0x84]
lea ecx, [ebp - 0x830]
push ecx
push eax
call edx
mov dword [ebp - 0x810], eax
test eax, eax
jns 0x405427
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x810]
push eax
push esi
push 0x438fb0
jmp 0x405668
mov ax, word [ebp - 0x830]
cmp ax, 0xffff
je 0x40549a
push 0xffffffffffffffff
movsx ecx, ax
push ecx
push esi
lea edx, [ebp - 0x808]
push 0x439050
push edx
call edi
add esp, 0x14
lea eax, [ebp - 0x808]
push eax
call ebx
lea ecx, [ebp - 0x808]
push ecx
call fcn.004042f0
mov eax, dword [ebp - 0x80c]
mov edx, dword [eax]
add esp, 4
push 0xffffffffffffffff
push eax
mov eax, dword [edx + 0x88]
call eax
mov dword [ebp - 0x810], eax
test eax, eax
jns 0x40549a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
push esi
push 0x4390d8
jmp 0x405848
mov eax, dword [ebp - 0x80c]
mov edx, dword [eax]
mov edx, dword [edx + 0x94]
lea ecx, [ebp - 0x83c]
push ecx
push eax
call edx
mov dword [ebp - 0x810], eax
test eax, eax
jns 0x4054d5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x810]
push eax
push esi
push 0x439178
jmp 0x405668
mov eax, dword [ebp - 0x83c]
cmp eax, 7
je 0x405543
push 7
push eax
push esi
lea ecx, [ebp - 0x808]
push 0x439220
push ecx
call edi
add esp, 0x14
lea edx, [ebp - 0x808]
push edx
call ebx
lea eax, [ebp - 0x808]
push eax
call fcn.004042f0
mov eax, dword [ebp - 0x80c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x98]
add esp, 4
push 7
push eax
call edx
mov dword [ebp - 0x810], eax
test eax, eax
jns 0x405543
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x810]
push eax
push esi
push 0x4392b0
jmp 0x405668
cmp dword [ebp - 0x820], 0
mov eax, dword [ebp - 0x80c]
jne 0x40563b
mov ecx, dword [eax]
lea edx, [ebp - 0x818]
push edx
push eax
mov eax, dword [ecx + 0x2c]
call eax
mov dword [ebp - 0x810], eax
test eax, eax
jns 0x405588
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
push esi
push 0x439358
jmp 0x405848
mov ecx, dword [ebp - 0x814]
mov eax, dword [ebp - 0x818]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4055ba
test dx, dx
je 0x4055b6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4055ba
add eax, 4
add ecx, 4
test dx, dx
jne 0x405594
xor eax, eax
jmp 0x4055bf
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x405747
mov edx, dword [ebp - 0x814]
mov eax, dword [ebp - 0x818]
push edx
push eax
push esi
lea ecx, [ebp - 0x808]
push 0x439408
push ecx
call edi
add esp, 0x14
lea edx, [ebp - 0x808]
push edx
call ebx
lea eax, [ebp - 0x808]
push eax
call fcn.004042f0
mov eax, dword [ebp - 0x80c]
mov edx, dword [ebp - 0x814]
mov ecx, dword [eax]
add esp, 4
push edx
push eax
mov eax, dword [ecx + 0x30]
call eax
mov dword [ebp - 0x810], eax
test eax, eax
jns 0x405747
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
push esi
push 0x4394a0
jmp 0x405848
mov edx, dword [eax]
mov edx, dword [edx + 0x64]
lea ecx, [ebp - 0x818]
push ecx
push eax
call edx
mov dword [ebp - 0x810], eax
test eax, eax
jns 0x405693
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x810]
push eax
push esi
push 0x439550
lea ecx, [ebp - 0x808]
push ecx
call edi
add esp, 0x14
lea edx, [ebp - 0x808]
push edx
call ebx
lea eax, [ebp - 0x808]
push eax
call fcn.004042f0
add esp, 4
xor esi, esi
jmp 0x405a6f
mov ecx, dword [ebp - 0x814]
mov eax, dword [ebp - 0x818]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4056c6
test dx, dx
je 0x4056c2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4056c6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4056a0
xor eax, eax
jmp 0x4056cb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x405815
mov ecx, dword [ebp - 0x814]
mov edx, dword [ebp - 0x818]
push ecx
push edx
push esi
lea eax, [ebp - 0x808]
push 0x439408
push eax
call edi
add esp, 0x14
lea ecx, [ebp - 0x808]
push ecx
call ebx
lea edx, [ebp - 0x808]
push edx
call fcn.004042f0
mov eax, dword [ebp - 0x80c]
mov edx, dword [ebp - 0x814]
mov ecx, dword [eax]
add esp, 4
push edx
push eax
mov eax, dword [ecx + 0x68]
call eax
mov dword [ebp - 0x810], eax
test eax, eax
jns 0x405815
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
push esi
push 0x439608
jmp 0x405848
mov eax, dword [ebp - 0x80c]
mov edx, dword [eax]
mov edx, dword [edx + 0x3c]
lea ecx, [ebp - 0x82c]
push ecx
push eax
call edx
mov dword [ebp - 0x810], eax
test eax, eax
jns 0x40577c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x810]
push eax
push esi
push 0x4396c0
jmp 0x4057ea
mov eax, dword [ebp - 0x82c]
cmp eax, 6
je 0x405a6a
push 6
push eax
push esi
lea ecx, [ebp - 0x808]
push 0x439768
push ecx
call edi
add esp, 0x14
lea edx, [ebp - 0x808]
push edx
call ebx
lea eax, [ebp - 0x808]
push eax
call fcn.004042f0
mov eax, dword [ebp - 0x80c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x40]
add esp, 4
push 6
push eax
call edx
mov dword [ebp - 0x810], eax
test eax, eax
jns 0x405a6a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x810]
push eax
push esi
push 0x4397f8
lea ecx, [ebp - 0x808]
push ecx
call edi
add esp, 0x14
lea edx, [ebp - 0x808]
push edx
call ebx
lea eax, [ebp - 0x808]
push eax
call fcn.004042f0
add esp, 4
xor esi, esi
jmp 0x405a6f
mov eax, dword [ebp - 0x80c]
mov ecx, dword [eax]
lea edx, [ebp - 0x82c]
push edx
push eax
mov eax, dword [ecx + 0x3c]
call eax
mov dword [ebp - 0x810], eax
test eax, eax
jns 0x405873
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
push esi
push 0x4396c0
lea edx, [ebp - 0x808]
push edx
call edi
add esp, 0x14
lea eax, [ebp - 0x808]
push eax
call ebx
lea ecx, [ebp - 0x808]
push ecx
call fcn.004042f0
add esp, 4
xor esi, esi
jmp 0x405a6f
mov eax, dword [ebp - 0x82c]
cmp eax, 1
je 0x405a6a
push 1
push eax
push esi
lea edx, [ebp - 0x808]
push 0x439768
push edx
call edi
add esp, 0x14
lea eax, [ebp - 0x808]
push eax
call ebx
lea ecx, [ebp - 0x808]
push ecx
call fcn.004042f0
mov eax, dword [ebp - 0x80c]
mov edx, dword [eax]
add esp, 4
push 1
push eax
mov eax, dword [edx + 0x40]
call eax
mov dword [ebp - 0x810], eax
test eax, eax
jns 0x405a6a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
push esi
lea edx, [ebp - 0x808]
push 0x4397f8
push edx
call edi
add esp, 0x14
lea eax, [ebp - 0x808]
push eax
call ebx
lea ecx, [ebp - 0x808]
push ecx
call fcn.004042f0
add esp, 4
xor esi, esi
jmp 0x405a6f
push esi
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
lea edx, [ebp - 0x808]
push str._FireWallRuleSet___s
push edx
call esi
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
add esp, 0xc
lea eax, [ebp - 0x808]
push eax
call edi
lea ecx, [ebp - 0x808]
push ecx
call fcn.004042f0
add esp, 4
lea edx, [ebp - 0x80c]
push edx
push 0x43bd40
push 1
push 0
push 0x43bd30
call ebx
test eax, eax
jns 0x40598e
push eax
lea eax, [ebp - 0x808]
push 0x4398e8
push eax
call esi
add esp, 0xc
lea ecx, [ebp - 0x808]
push ecx
call edi
lea edx, [ebp - 0x808]
push edx
call fcn.004042f0
add esp, 4
xor esi, esi
jmp 0x405a6f
mov eax, dword [ebp - 0x80c]
mov edx, dword [ebp - 0x824]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x20]
call eax
mov eax, dword [ebp - 0x80c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x70]
push 1
push eax
call edx
mov eax, dword [ebp - 0x80c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0xa8]
push 1
push eax
call edx
mov eax, dword [ebp - 0x80c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x88]
push 0xffffffffffffffff
push eax
call edx
mov eax, dword [ebp - 0x80c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x98]
push 7
push eax
call edx
cmp dword [ebp - 0x820], 0
mov edx, dword [ebp - 0x814]
mov eax, dword [ebp - 0x80c]
mov ecx, dword [eax]
push edx
push eax
jne 0x405a0e
mov eax, dword [ecx + 0x30]
call eax
push 6
jmp 0x405a15
mov eax, dword [ecx + 0x68]
call eax
push 1
mov eax, dword [ebp - 0x80c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x40]
push eax
call edx
mov eax, dword [ebp - 0x81c]
mov edx, dword [ebp - 0x80c]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x20]
call eax
test eax, eax
jns 0x405a6a
push eax
lea ecx, [ebp - 0x808]
push 0x439978
push ecx
call esi
add esp, 0xc
lea edx, [ebp - 0x808]
push edx
call edi
lea eax, [ebp - 0x808]
push eax
call fcn.004042f0
add esp, 4
xor esi, esi
jmp 0x405a6f
mov esi, 1
mov eax, dword [ebp - 0x824]
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
test eax, eax
je 0x405a82
push eax
call edi
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x405a8f
push eax
call edi
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x405a9c
push eax
call edi
mov eax, dword [ebp - 0x80c]
test eax, eax
je 0x405aae
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x81c]
test eax, eax
je 0x405ac0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x828]
test eax, eax
je 0x405ad2
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp dword [ebp - 0x838], 0
jl 0x405ae1
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041f53e
mov esp, ebp
pop ebp
ret