Function at 0x41be60
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov edi, ecx
mov ebx, dword [edi + 0x10]
xor esi, esi
cmp ebx, esi
mov dword [ebp - 4], esi
mov dword [ebp - 8], esi
jne 0x41be95
push str.Failed_to_get_filter_class_from_inf_file__n
call fcn.0040ef30
add esp, 4
pop edi
pop esi
mov eax, 0x80070490
pop ebx
mov esp, ebp
pop ebp
ret 8
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 4]
push ecx
call fcn.0041b800
cmp eax, esi
je 0x41bebf
jle 0x41c0b0
pop edi
and eax, 0xffff
pop esi
or eax, 0x80070000
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp + 8], 0
je 0x41bfe6
cmp byte [ebp + 0xc], 0
mov eax, 0x45a6ac
jne 0x41bed9
mov eax, str.high
push eax
push ebx
push str.Adding_filter_class__ls_at__s_altitude_n
call fcn.0040ef30
add esp, 0xc
push esi
mov esi, dword [ebp - 4]
push ebx
push esi
mov ecx, edi
call fcn.0041b710
cmp eax, 0xffffffff
je 0x41bf9f
cmp byte [ebp + 0xc], 0
mov ecx, edi
sete dl
push edx
push esi
call fcn.0041ba00
test al, al
jne 0x41bf81
push str.Filter_class_has_already_been_added__but_at_the_wrong_altitude__will_delete_it._n
call fcn.0040ef30
add esp, 4
push 0
push 0
mov ecx, edi
call fcn.0041be60
push esi
mov dword [ebp + 8], eax
call fcn.0043c1ba
add esp, 4
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 4]
push ecx
call fcn.0041b800
test eax, eax
jne 0x41bea6
cmp dword [ebp + 8], eax
mov esi, dword [ebp - 4]
je 0x41bf9f
push eax
push ebx
push esi
mov ecx, edi
call fcn.0041b710
cmp eax, 0xffffffff
je 0x41bf9f
push str.Failed_to_delete_filter_class_residing_at_the_wrong_altitude__n
call fcn.0040ef30
push esi
call fcn.0043c1ba
mov eax, dword [ebp + 8]
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push str.Filter_has_already_been_added__n
call fcn.0040ef30
push esi
call fcn.0043c1ba
add esp, 8
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp + 0xc], 0
lea edx, [ebp - 4]
sete cl
push edx
lea eax, [ebp + 8]
push eax
push ecx
push esi
mov ecx, edi
call fcn.0041b930
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
cmp eax, ecx
je 0x41bfcf
cmp byte [ebp + 0xc], 0
je 0x41bfcc
lea eax, [ecx - 1]
jmp 0x41bfcf
add eax, 1
mov edx, dword [ebp - 8]
push eax
push 0x10000
shr edx, 1
push edx
push ebx
push esi
mov ecx, edi
call fcn.0041bb60
jmp 0x41c020
push ebx
push str.Deleting_filter_class__ls_n
call fcn.0040ef30
add esp, 8
push esi
mov esi, dword [ebp - 4]
push ebx
push esi
mov ecx, edi
call fcn.0041b710
cmp eax, 0xffffffff
jne 0x41c010
push str.Filter_has_already_been_deleted___n
jmp 0x41bf86
mov ecx, dword [ebp - 8]
shr ecx, 1
push ecx
push eax
push ebx
push esi
mov ecx, edi
call fcn.0041bc50
cmp eax, 0xffffffff
jne 0x41c046
push str.Failed_to_add_del_filter_class__n
call fcn.0040ef30
push esi
call fcn.0043c1ba
add esp, 8
pop edi
pop esi
mov eax, 0x8007007a
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [str.FilterClasses]
add eax, eax
push eax
mov eax, dword [str.SystemCurrentControlSetControlNetwork]
push esi
push 7
push edx
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
mov edi, eax
test edi, edi
jne 0x41c087
mov ecx, dword [str.FilterClasses]
mov edx, dword [str.SystemCurrentControlSetControlNetwork]
push ecx
push edx
push str.Successfully_modified_reg_value_HKLM_ls_ls_n
call fcn.0040ef30
add esp, 0xc
jmp 0x41c095
push edi
push str.Failed_to_set_reg_value__err_x_n
call fcn.0040ef30
add esp, 8
push esi
call fcn.0043c1ba
add esp, 4
test edi, edi
jle 0x41c0ae
and edi, 0xffff
or edi, 0x80070000
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8