Function at 0x409350
Capabilities:
Monitor local ipv4 address changes

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea eax, [ebp - 0x24]
push ebx
lea ebx, [ebp - 0x20]
sub esp, 0x3c
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [esp], eax
mov eax, dword [sym.imp.iphlpapi.dll_NotifyAddrChange]
mov dword [esp + 4], ebx
mov dword [ebp - 0x30], eax
call eax
sub esp, 8
mov esi, eax
call fcn.0040f800
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x687
xor eax, eax
cmp esi, 0x3e5
sete al
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.NotifyAddrChange_returned__ld__expected_ERROR_IO_PENDING_n
call fcn.00402000
mov edx, dword fs:[0x18]
mov esi, dword [edx + 0x34]
mov dword [ebp - 0x34], edx
call fcn.0040f800
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x689
xor eax, eax
cmp esi, 0x3e5
sete al
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.GetLastError_returned__ld__expected_ERROR_IO_PENDING_n
call fcn.00402000
mov eax, dword [sym.imp.iphlpapi.dll_CancelIPChangeNotify]
mov dword [esp], ebx
mov dword [ebp - 0x2c], eax
call eax
sub esp, 4
mov esi, eax
call fcn.0040f800
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x68b
xor eax, eax
cmp esi, 1
sete al
mov dword [esp + 4], str.CancelIPChangeNotify_returned_FALSE__expected_TRUE_n
mov dword [esp], eax
call fcn.00402000
lea eax, [ebp - 0x28]
mov dword [esp + 4], ebx
mov edi, dword [sym.imp.kernel32.dll_GetOverlappedResult]
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call edi
sub esp, 0x10
mov esi, eax
call fcn.0040f800
mov edx, dword [ebp - 0x34]
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x68d
xor eax, eax
mov ecx, dword [edx + 0x34]
test esi, esi
jne 0x409499
xor eax, eax
cmp ecx, 0x3e3
sete al
mov dword [esp + 0xc], ecx
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.got_bret__d__err__lu._n
call fcn.00402000
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [esp], ebx
mov eax, dword [ebp - 0x2c]
call eax
sub esp, 4
mov esi, eax
mov eax, 0x691
call fcn.00401820
xor eax, eax
test esi, esi
mov dword [esp + 4], str.CancelIPChangeNotify_returned_TRUE__expected_FALSE_n
sete al
mov dword [esp], eax
call fcn.00402000
mov ecx, dword [sym.imp.kernel32.dll_CreateEventW]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x38], ecx
call ecx
lea edx, [ebp - 0x24]
sub esp, 0x10
mov dword [ebp - 0x10], eax
mov dword [esp], edx
mov dword [esp + 4], ebx
mov ecx, dword [ebp - 0x30]
call ecx
sub esp, 8
mov esi, eax
mov eax, 0x697
call fcn.00401820
xor eax, eax
cmp esi, 0x3e5
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.NotifyAddrChange_returned__ld__expected_ERROR_IO_PENDING_n
mov dword [esp], eax
call fcn.00402000
mov eax, 0x698
call fcn.00401820
mov dword [esp + 4], str.NotifyAddrChange_returned_invalid_file_handle_n
xor eax, eax
cmp dword [ebp - 0x24], 0xffffffff
setne al
mov dword [esp], eax
call fcn.00402000
lea edx, [ebp - 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call edi
sub esp, 0x10
mov esi, eax
call fcn.0040f800
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x69a
xor eax, eax
test esi, esi
sete al
mov dword [esp + 4], str.GetOverlappedResult_returned_TRUE__expected_FALSE_n
mov dword [esp], eax
call fcn.00402000
mov edx, dword fs:[0x18]
mov esi, dword [edx + 0x34]
mov dword [ebp - 0x34], edx
call fcn.0040f800
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x69c
xor eax, eax
cmp esi, 0x3e4
sete al
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.GetLastError_returned__ld__expected_ERROR_IO_INCOMPLETE_n
call fcn.00402000
mov dword [esp], ebx
mov eax, dword [ebp - 0x2c]
call eax
sub esp, 4
mov esi, eax
mov eax, 0x69e
call fcn.00401820
xor eax, eax
cmp esi, 1
mov dword [esp + 4], str.CancelIPChangeNotify_returned_FALSE__expected_TRUE_n
sete al
mov dword [esp], eax
call fcn.00402000
lea eax, [ebp - 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call edi
sub esp, 0x10
mov esi, eax
call fcn.0040f800
mov edx, dword [ebp - 0x34]
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x6a0
xor eax, eax
mov ecx, dword [edx + 0x34]
test esi, esi
jne 0x4096bb
xor eax, eax
cmp ecx, 0x3e3
sete al
mov dword [esp + 0xc], ecx
mov dword [esp + 8], esi
mov dword [esp + 4], str.got_bret__d__err__lu._n
mov dword [esp], eax
call fcn.00402000
mov edx, dword [0x42b154]
test edx, edx
jne 0x4096e8
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov eax, dword [ebp - 0x38]
call eax
sub esp, 0x10
mov dword [ebp - 0x10], eax
mov eax, 0x6a7
call fcn.00401820
mov dword [esp], str.Testing_asynchronous_ipv4_address_change_notification._Please_change_the_ipv4_address_of_one_of_your_network_interfaces_n
call fcn.00401b30
lea eax, [ebp - 0x24]
mov dword [esp + 4], ebx
mov dword [esp], eax
mov eax, dword [ebp - 0x30]
call eax
sub esp, 8
mov esi, eax
mov eax, 0x6aa
call fcn.00401820
xor eax, eax
cmp esi, 0x3e5
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.NotifyAddrChange_returned__ld__expected_NO_ERROR_n
mov dword [esp], eax
call fcn.00402000
lea ecx, [ebp - 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call edi
sub esp, 0x10
mov ebx, eax
mov eax, 0x6ac
call fcn.00401820
xor eax, eax
cmp ebx, 1
mov dword [esp + 4], str.GetOverlappedResult_returned_FALSE__expected_TRUE_n
sete al
mov dword [esp], eax
call fcn.00402000
mov eax, dword [0x42b154]
test eax, eax
je 0x4096dd
mov eax, 0x6b2
call fcn.00401820
mov dword [esp], str.Testing_synchronous_ipv4_address_change_notification._Please_change_the_ipv4_address_of_one_of_your_network_interfaces_n
call fcn.00401b30
mov dword [esp + 4], 0
mov dword [esp], 0
mov eax, dword [ebp - 0x30]
call eax
sub esp, 8
mov ebx, eax
mov eax, 0x6b5
call fcn.00401820
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.NotifyAddrChange_returned__ld__expected_NO_ERROR_n
mov dword [esp], eax
call fcn.00402000
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret