Function at 0x48f550
Capabilities:
Check mutex on windows
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [0x8307c0]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x5c], eax
xor eax, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 0x354]
mov dword [ebp - 0x58], ecx
mov ecx, eax
push ebx
push esi
push edi
xor esi, esi
mov dword [ebp - 0x28], eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x48f5a2
sub ecx, edx
push 8
lea eax, [ecx + 0x20]
push eax
push dword [0x87f764]
call fcn.00499d60
mov ebx, eax
add esp, 0xc
mov dword [ebp - 0x20], ebx
test ebx, ebx
je 0x48f8d4
xor edi, edi
jmp 0x48f5d3
mov ebx, dword [ebp - 0x20]
mov eax, dword [edi + 0x7d056c]
push 0
push 0x4fbd34
push dword [ebp - 0x28]
mov dword [ebp - 0x50], eax
push eax
push ebx
call fcn.0049f370
mov ebx, eax
push str.CONNECT_REQUEST
push ebx
call fcn.0049f350
add esp, 0x1c
push dword [ebp - 0x20]
push 0
push 0x100002
call dword [sym.imp.KERNEL32.dll_OpenEventA]
mov dword [ebp - 0x44], eax
test eax, eax
jne 0x48f626
add edi, 4
cmp edi, 8
jb 0x48f5d0
mov esi, 0x7f6
jmp 0x48f8d7
push str.CONNECT_ANSWER
push ebx
call fcn.0049f350
mov edi, dword [ebp - 0x20]
add esp, 8
push edi
push 0
push 0x100002
call dword [sym.imp.KERNEL32.dll_OpenEventA]
mov dword [ebp - 0x48], eax
test eax, eax
jne 0x48f656
mov esi, 0x7f7
jmp 0x48f8da
push str.CONNECT_DATA
push ebx
call fcn.0049f350
add esp, 8
push edi
push 0
push 2
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x48f680
mov esi, 0x7f8
jmp 0x48f8da
push 4
push 0
push 0
push 2
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebp - 0x4c], eax
test eax, eax
jne 0x48f6a0
mov esi, 0x7f9
jmp 0x48f8da
push str.CONNECT_NAMED_MUTEX
push ebx
call fcn.0049f350
add esp, 8
push edi
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x48f6ca
mov esi, 0x7fe
jmp 0x48f8da
mov eax, dword [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
test eax, eax
jne 0x48f6e2
mov esi, 0x7fe
jmp 0x48f8da
push dword [ebp + 0x10]
mov eax, dword [ebp - 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x48f6fd
mov esi, 0x7fd
jmp 0x48f8da
mov ebx, dword [ebp - 0x24]
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xa
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x24], esi
push eax
mov eax, dword [ebp - 0x4c]
push dword [eax]
call fcn.0049f400
push 0
push 0x4fbd34
lea eax, [ebp - 0x1c]
push eax
push 0x4fbd34
push dword [ebp - 0x28]
push dword [ebp - 0x50]
push edi
call fcn.0049f370
mov ebx, eax
push str.DATA
push ebx
call fcn.0049f350
add esp, 0x30
push edi
push 0
push 2
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov dword [ebp - 0x28], eax
test eax, eax
jne 0x48f769
mov esi, 0x7fa
jmp 0x48f844
push 0x3e84
push 0
push 0
push 2
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x48f78c
mov esi, 0x7fb
jmp 0x48f844
push str.SERVER_WROTE
push ebx
call fcn.0049f350
add esp, 8
push edi
push 0
push 0x100002
call dword [sym.imp.KERNEL32.dll_OpenEventA]
mov dword [ebp - 0x40], eax
test eax, eax
je 0x48f83f
push str.SERVER_READ
push ebx
call fcn.0049f350
add esp, 8
push edi
push 0
push 0x100002
call dword [sym.imp.KERNEL32.dll_OpenEventA]
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x48f83f
push str.CLIENT_WROTE
push ebx
call fcn.0049f350
add esp, 8
push edi
push 0
push 0x100002
call dword [sym.imp.KERNEL32.dll_OpenEventA]
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x48f83f
push str.CLIENT_READ
push ebx
call fcn.0049f350
add esp, 8
push edi
push 0
push 0x100002
call dword [sym.imp.KERNEL32.dll_OpenEventA]
mov dword [ebp - 0x38], eax
test eax, eax
je 0x48f83f
push str.CONNECTION_CLOSED
push ebx
call fcn.0049f350
add esp, 8
push edi
push 0
push 0x100002
call dword [sym.imp.KERNEL32.dll_OpenEventA]
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x48f8a3
mov esi, 0x7fc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x48f85b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x48f869
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x48f877
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x48f885
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x48f893
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x48f8da
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x48f8da
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push dword [ebp - 0x50]
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x3c]
push eax
push dword [ebp - 0x2c]
mov eax, dword [ebp - 0x40]
push eax
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
push eax
call fcn.0049f7c0
mov ecx, dword [ebp - 0x5c]
add esp, 0x1c
mov dword [ecx], eax
jmp 0x48f8da
mov ebx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x20]
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
add esp, 4
test esi, esi
je 0x48f8f0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x44]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x48f900
push eax
call edi
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x48f90a
push eax
call edi
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x48f918
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x48f922
push eax
call edi
test esi, esi
je 0x48f9b8
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x48f93d
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [ebp - 0x24]
call edi
cmp esi, 0x7fc
jne 0x48f975
push dword [ebp - 0x30]
push ebx
push dword [0x7d12d8]
push dword [0x7d0370]
push esi
push dword [ebp - 0x58]
call fcn.00494c70
add esp, 0x18
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e7e02
mov esp, ebp
pop ebp
ret
lea eax, [esi - 0x7d0]
cmp eax, 0x3e
ja 0x48f989
mov eax, dword [esi*4 + 0x7cf2e8]
jmp 0x48f98e
mov eax, dword [0x7d3168]
push dword [ebp - 0x30]
push eax
push dword [0x7d0370]
push esi
push dword [ebp - 0x58]
call fcn.00494c70
add esp, 0x14
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e7e02
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x34]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004e7e02
mov esp, ebp
pop ebp
ret