Function at 0x488740
Capabilities:
Check mutex on windows
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x85c
mov eax, dword [0x55800c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push str.WinVNCAppMain_n
call fcn.00430220
add esp, 4
push str.d:_saasultravncwinvncwinvncwinvnc.cpp_:__DBG___WinVNCAPPMain_n
push 9
push 0x558c50
call fcn.0041c840
add esp, 0xc
push 4
call fcn.004cbf3d
mov edi, eax
add esp, 4
mov dword [ebp - 0x85c], edi
cmp dword [0x5689a4], 0
mov dword [edi], 0
jne 0x48880b
push str.WinVNC_Win32_Instance_Mutex
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [edi], eax
test eax, eax
je 0x4887ba
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x48880b
push 0x568320
push str.d:_saasultravncwinvncwinvncwinvnc.cpp_:__s____exiting_n
push 9
push 0x558c50
call fcn.0041c840
add esp, 0x10
cmp dword [0x567efc], 0
jne 0x4887f0
push 0
push 0x542d04
mov edx, 0x568320
call fcn.00425e00
add esp, 8
push ecx
mov ecx, edi
call fcn.004889a0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004cbf27
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x858]
call fcn.0047dec0
mov eax, dword [ebp - 0x738]
test eax, eax
je 0x488833
push eax
call fcn.004dab64
add esp, 4
mov dword [ebp - 0x738], 0
push 0x542d04
call fcn.004dad37
add esp, 4
mov dword [ebp - 0x738], eax
push str.d:_saasultravncwinvncwinvncwinvnc.cpp_:_server_created_ok_n
push 0
push 0x558c50
call fcn.0041c840
mov eax, dword [0x567efc]
add esp, 0xc
mov esi, dword [sym.imp.KERNEL32.dll_OpenEventA]
mov dword [ebp - 0x34], eax
push str.GlobalSessionEventUltra
push 0
push 0x1f0003
call esi
push str.GlobalSessionEventUltraCad
push 0
push 2
mov dword [0x58a324], eax
call esi
mov dword [0x5689a0], eax
mov eax, dword [0x58a324]
test eax, eax
je 0x48889b
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push str.d:_saasultravncwinvncwinvncwinvnc.cpp_:__SDEvent_created__n
push 0
push 0x558c50
call fcn.0041c840
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
add esp, 0xc
cmp byte [0x563186], 0
jne 0x48890e
nop
lea eax, [ebp - 0x85c]
push eax
push 0
lea eax, [ebp - 0x858]
push eax
push 0x488330
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov esi, eax
test esi, esi
je 0x4888f1
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call ebx
push str.d:_saasultravncwinvncwinvncwinvnc.cpp_:__Closing_Imp_Thread_n
push 0
push 0x558c50
call fcn.0041c840
add esp, 0xc
cmp byte [0x563186], 0
je 0x4888c0
mov eax, dword [edi]
mov byte [0x563186], 1
test eax, eax
je 0x488926
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [edi]
call ebx
push 4
push edi
call fcn.004cbf6d
mov eax, dword [0x58a324]
add esp, 8
test eax, eax
je 0x48893d
push eax
call ebx
mov eax, dword [0x5689a0]
test eax, eax
je 0x488949
push eax
call ebx
push str.d:_saasultravncwinvncwinvncwinvnc.cpp_:__SHUTING_DOWN_SERVER__n
push 0
push 0x558c50
call fcn.0041c840
mov eax, dword [0x567ac0]
add esp, 0xc
test eax, eax
je 0x488979
push eax
call fcn.004cbf38
add esp, 4
mov dword [0x567ac0], 0
lea ecx, [ebp - 0x858]
call fcn.0047e340
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004cbf27
mov esp, ebp
pop ebp
ret