Function at 0x40f910
Capabilities:
Check for time delay via gettickcount
Check if file exists
Check mutex on windows
Print debug messages

Disassembly:
sub esp, 0x324
mov eax, dword [0x4382c4]
xor eax, esp
mov dword [esp + 0x31c], eax
push ebx
push ebp
push esi
push edi
push str.start_to_shut_down_svn_system
call fcn.00403400
mov eax, dword [0x43b7f8]
add esp, 4
push 0x1388
mov ebx, 2
push eax
mov dword [0x43af7c], ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call fcn.0040f190
mov byte [0x43ac43], bl
call fcn.0040f260
mov ecx, dword [0x43b7f8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
movzx edx, byte [0x439ca8]
mov esi, dword [edx*4 + 0x439354]
lea eax, [esp + 0x17]
mov dword [0x4395b0], 1
mov dword [0x43a9c8], 0xff
mov byte [esp + 0x17], 0
call fcn.0040b500
call fcn.00412110
push 0
push 0x4395b8
mov ebx, 0x43a9c0
call fcn.0040cee0
cmp dword [0x43b330], 0
je 0x40fa17
mov ecx, 0xc4
mov esi, ebx
lea edi, [esp + 0x18]
rep movsd dword es:[edi], dword [esi]
mov edi, 0x20
xor esi, esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], 0
call fcn.0040fc10
push 0x4395b8
lea edi, [esp + 0x1c]
call fcn.0040c620
movzx eax, byte [0x439ca8]
mov esi, dword [eax*4 + 0x439360]
lea eax, [esp + 0x17]
mov byte [esp + 0x17], 0
call fcn.0040b500
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.004171c0
call fcn.00410d10
push 0x6a
push 0xff
push str.SendMessageToAgent_wParam____d___lParam__d_
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 0xc
cmp dword [0x43b458], 0
je 0x40fa4d
push str.Ending_session__stop_sending_message_to_agent.
jmp 0x40fba6
mov ecx, dword [0x43ac0c]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x40fa9b
mov edx, dword [0x43ac0c]
push 0x6a
push 0xff
push 0x1080
push edx
call dword [sym.imp.USER32.dll_PostMessageA]
mov eax, dword [0x43ac0c]
push 0x6a
push 0xff
push 0x1080
push eax
push str.PostMessage_to_agent_hwnd0x_08x_msg_d_service_d_parm_d
call fcn.00403400
add esp, 0x14
jmp 0x40fbb3
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov ebp, eax
xor edi, edi
call ebx
sub eax, ebp
cmp eax, 0x2710
jae 0x40fbb3
push str.hAgentWnd_is_invalid_refresh_inter_process_info
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [0x43b7f8]
push 0x1388
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call fcn.0040f190
mov edx, dword [0x43b7f8]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [0x43ac0c]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
mov ecx, 0x43b48c
jne 0x40fb79
push str.Post_message_to_agent_failed
call fcn.0040a090
add esp, 4
push str.GlobalSVNIEAgentControl
push 0
push 0
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
jne 0x40fb37
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x40fb37
push str.Ocx_or_plugin_do_not_exist_
call fcn.00403400
add esp, 4
cmp edi, 2
je 0x40fba1
push 0x1f4
add edi, 1
call dword [sym.imp.KERNEL32.dll_Sleep]
call ebx
mov ecx, dword [0x43ac0c]
push 0x6a
push 0xff
push 0x1080
push ecx
push str.PostMessage_to_agent_hwnd0x_08x_msg_d_service_d_parm_d
mov esi, eax
call fcn.00403400
sub esi, ebp
add esp, 0x14
cmp esi, 0x2710
jb 0x40fab6
jmp 0x40fbb3
push str.IsWindow__TRUE__message_has_sent.
call fcn.0040a090
mov edx, dword [0x43ac0c]
add esp, 4
push 0x6a
push 0xff
push 0x1080
push edx
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x40fbb3
push str.Ocx_or_plugin_do_not_exist_stop_try_to_post_message_to_agent.
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 4
mov eax, dword [0x43b7f8]
push 0x1388
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call fcn.0040f190
mov byte [0x43ac43], 0
call fcn.0040f260
mov ecx, dword [0x43b7f8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov ecx, dword [esp + 0x32c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0041aec3
add esp, 0x324
ret