Function at 0x407630
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 [0x44c044]
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.00428450
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 0x43d320
mov dword [ebp - 0x814], eax
mov dword [ebp - 0x818], 0
call fcn.00422d63
add esp, 8
test eax, eax
jne 0x4076c0
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 0x40771e
test edi, edi
jns 0x40771e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
lea edx, [ebp - 0x808]
push 0x43d328
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.00406870
add esp, 4
xor esi, esi
jmp 0x407fff
mov ebx, dword [sym.imp.ole32.dll_CoCreateInstance]
lea edx, [ebp - 0x828]
push edx
push 0x4406a8
push 1
push 0
push 0x440698
call ebx
mov edi, eax
test edi, edi
jns 0x407781
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
lea eax, [ebp - 0x808]
push 0x43d3c0
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.00406870
add esp, 4
xor esi, esi
jmp 0x407fff
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 0x4077dc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
lea ecx, [ebp - 0x808]
push 0x43d470
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.00406870
add esp, 4
xor esi, esi
jmp 0x407fff
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 0x407e9c
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 0x40785c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push esi
lea ecx, [ebp - 0x808]
push 0x43d518
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.00406870
add esp, 4
xor esi, esi
jmp 0x407fff
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 0x4078d3
push 1
push eax
push esi
lea ecx, [ebp - 0x808]
push 0x43d5c0
push ecx
call edi
add esp, 0x14
lea edx, [ebp - 0x808]
push edx
call ebx
lea eax, [ebp - 0x808]
push eax
call fcn.00406870
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 0x4078d3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x810]
push eax
push esi
push 0x43d650
jmp 0x407bf8
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 0x40790e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
push esi
push 0x43d6f8
jmp 0x407dd8
mov eax, dword [ebp - 0x840]
cmp eax, 1
je 0x40797c
push 1
push eax
push esi
lea edx, [ebp - 0x808]
push 0x43d798
push edx
call edi
add esp, 0x14
lea eax, [ebp - 0x808]
push eax
call ebx
lea ecx, [ebp - 0x808]
push ecx
call fcn.00406870
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 0x40797c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
push esi
push 0x43d828
jmp 0x407dd8
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 0x4079b7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x810]
push eax
push esi
push 0x43d8c8
jmp 0x407bf8
mov ax, word [ebp - 0x830]
cmp ax, 0xffff
je 0x407a2a
push 0xffffffffffffffff
movsx ecx, ax
push ecx
push esi
lea edx, [ebp - 0x808]
push 0x43d968
push edx
call edi
add esp, 0x14
lea eax, [ebp - 0x808]
push eax
call ebx
lea ecx, [ebp - 0x808]
push ecx
call fcn.00406870
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 0x407a2a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
push esi
push 0x43d9f0
jmp 0x407dd8
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 0x407a65
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x810]
push eax
push esi
push 0x43da90
jmp 0x407bf8
mov eax, dword [ebp - 0x83c]
cmp eax, 7
je 0x407ad3
push 7
push eax
push esi
lea ecx, [ebp - 0x808]
push 0x43db38
push ecx
call edi
add esp, 0x14
lea edx, [ebp - 0x808]
push edx
call ebx
lea eax, [ebp - 0x808]
push eax
call fcn.00406870
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 0x407ad3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x810]
push eax
push esi
push 0x43dbc8
jmp 0x407bf8
cmp dword [ebp - 0x820], 0
mov eax, dword [ebp - 0x80c]
jne 0x407bcb
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 0x407b18
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
push esi
push 0x43dc70
jmp 0x407dd8
mov ecx, dword [ebp - 0x814]
mov eax, dword [ebp - 0x818]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x407b4a
test dx, dx
je 0x407b46
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x407b4a
add eax, 4
add ecx, 4
test dx, dx
jne 0x407b24
xor eax, eax
jmp 0x407b4f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x407cd7
mov edx, dword [ebp - 0x814]
mov eax, dword [ebp - 0x818]
push edx
push eax
push esi
lea ecx, [ebp - 0x808]
push 0x43dd20
push ecx
call edi
add esp, 0x14
lea edx, [ebp - 0x808]
push edx
call ebx
lea eax, [ebp - 0x808]
push eax
call fcn.00406870
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 0x407cd7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
push esi
push 0x43ddb8
jmp 0x407dd8
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 0x407c23
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x810]
push eax
push esi
push 0x43de68
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.00406870
add esp, 4
xor esi, esi
jmp 0x407fff
mov ecx, dword [ebp - 0x814]
mov eax, dword [ebp - 0x818]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x407c56
test dx, dx
je 0x407c52
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x407c56
add eax, 4
add ecx, 4
test dx, dx
jne 0x407c30
xor eax, eax
jmp 0x407c5b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x407da5
mov ecx, dword [ebp - 0x814]
mov edx, dword [ebp - 0x818]
push ecx
push edx
push esi
lea eax, [ebp - 0x808]
push 0x43dd20
push eax
call edi
add esp, 0x14
lea ecx, [ebp - 0x808]
push ecx
call ebx
lea edx, [ebp - 0x808]
push edx
call fcn.00406870
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 0x407da5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
push esi
push 0x43df20
jmp 0x407dd8
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 0x407d0c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x810]
push eax
push esi
push 0x43dfd8
jmp 0x407d7a
mov eax, dword [ebp - 0x82c]
cmp eax, 6
je 0x407ffa
push 6
push eax
push esi
lea ecx, [ebp - 0x808]
push 0x43e080
push ecx
call edi
add esp, 0x14
lea edx, [ebp - 0x808]
push edx
call ebx
lea eax, [ebp - 0x808]
push eax
call fcn.00406870
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 0x407ffa
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x810]
push eax
push esi
push 0x43e110
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.00406870
add esp, 4
xor esi, esi
jmp 0x407fff
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 0x407e03
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
push esi
push 0x43dfd8
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.00406870
add esp, 4
xor esi, esi
jmp 0x407fff
mov eax, dword [ebp - 0x82c]
cmp eax, 1
je 0x407ffa
push 1
push eax
push esi
lea edx, [ebp - 0x808]
push 0x43e080
push edx
call edi
add esp, 0x14
lea eax, [ebp - 0x808]
push eax
call ebx
lea ecx, [ebp - 0x808]
push ecx
call fcn.00406870
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 0x407ffa
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
push esi
lea edx, [ebp - 0x808]
push 0x43e110
push edx
call edi
add esp, 0x14
lea eax, [ebp - 0x808]
push eax
call ebx
lea ecx, [ebp - 0x808]
push ecx
call fcn.00406870
add esp, 4
xor esi, esi
jmp 0x407fff
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.00406870
add esp, 4
lea edx, [ebp - 0x80c]
push edx
push 0x4406c8
push 1
push 0
push 0x4406b8
call ebx
test eax, eax
jns 0x407f1e
push eax
lea eax, [ebp - 0x808]
push 0x43e200
push eax
call esi
add esp, 0xc
lea ecx, [ebp - 0x808]
push ecx
call edi
lea edx, [ebp - 0x808]
push edx
call fcn.00406870
add esp, 4
xor esi, esi
jmp 0x407fff
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 0x407f9e
mov eax, dword [ecx + 0x30]
call eax
push 6
jmp 0x407fa5
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 0x407ffa
push eax
lea ecx, [ebp - 0x808]
push 0x43e290
push ecx
call esi
add esp, 0xc
lea edx, [ebp - 0x808]
push edx
call edi
lea eax, [ebp - 0x808]
push eax
call fcn.00406870
add esp, 4
xor esi, esi
jmp 0x407fff
mov esi, 1
mov eax, dword [ebp - 0x824]
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
test eax, eax
je 0x408012
push eax
call edi
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x40801f
push eax
call edi
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x40802c
push eax
call edi
mov eax, dword [ebp - 0x80c]
test eax, eax
je 0x40803e
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x81c]
test eax, eax
je 0x408050
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x828]
test eax, eax
je 0x408062
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp dword [ebp - 0x838], 0
jl 0x408071
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.004217a4
mov esp, ebp
pop ebp
ret