Function at 0x9a1910
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3f4
mov eax, dword [0xb196ec]
xor eax, esp
mov dword [esp + 0x3f0], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
xor edi, edi
cmp dword [0xbdb3b8], edi
jne 0x9a1952
push edi
mov ecx, str.LOGFILE_MUTEX
call fcn.00962f00
cmp eax, edi
je 0x9a1a1e
mov dword [0xbdb3b8], eax
push 1
push str.Initializing...__MSV_Initialize_msvint.dll_
call fcn.009a18a0
push esi
call dword [0xbdb3c0]
mov ebx, eax
add esp, 0xc
cmp ebx, edi
jge 0x9a1a9a
push edi
push str.ERROR____MSV_Initialize_Failed...
call fcn.009a18a0
add esp, 8
cmp ebx, 0x80040266
je 0x9a1993
mov eax, dword [0xbdb3c4]
cmp eax, edi
je 0x9a1993
call eax
cmp dword [0xbdb3b8], edi
je 0x9a1a83
push 0xbdb3b8
mov esi, 1
call fcn.00985290
test eax, eax
jne 0x9a19b4
xor esi, esi
mov dword [0xbdb3b8], edi
cmp esi, edi
jne 0x9a1a7d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x3e7
mov edi, eax
lea esi, [esp + 0x14]
call fcn.00960a40
add esp, 4
mov eax, esi
push 0
push eax
call fcn.009a18a0
push str.LOGFILE_MUTEX
mov ecx, esi
push str.ERROR_____s_Unable_to_DestroyMutex_Mutex_reason_above
push ecx
call fcn.00a78f30
add esp, 0x14
mov edx, esi
push 0
push edx
call fcn.009a18a0
add esp, 8
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x3f0]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x3e7
mov edi, eax
lea esi, [esp + 0x14]
call fcn.00960a40
add esp, 4
mov eax, esi
push 0
push eax
call fcn.009a18a0
push str.LOGFILE_MUTEX
mov ecx, esi
push str.ERROR_____s_Unable_to_Create_Mutex_reason_above
push ecx
call fcn.00a78f30
add esp, 0x14
mov edx, esi
push 0
push edx
call fcn.009a18a0
add esp, 8
mov eax, 0x80004005
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x3f0]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
mov dword [0xbdb3b8], edi
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x3f0]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
push 1
push str.MSV_Initalize_Success
call fcn.009a18a0
push 1
push str.Function_MS_InitializeIPCLayer_Calling...__MS_InitializeIPCLayerEx_ipcsrvr.dll_
call fcn.009a18a0
mov eax, dword [str._b1m_V1m__1m]
push edi
push edi
push edi
push eax
call dword [0xbdb3c8]
add esp, 0x20
cmp eax, 0xe
ja case.0x9a1ad4.1
movzx ecx, byte [eax + 0x9a1d08]
jmp dword [ecx*4 + 0x9a1cf4]
push 1
push str.MS_InitializeIPCLayer_Called_Successfully
call fcn.009a18a0
add esp, 8
cmp dword [ebp + 0xc], edi
jne 0x9a1b2f
cmp dword [0xbdb2a4], edi
jne 0x9a1b08
push 1
mov ecx, str.MSIPCSRV_Active
call fcn.00962f00
mov dword [0xbdb2a4], eax
call fcn.009a2750
test eax, eax
je 0x9a1b2f
lea ecx, [esp + 0x10]
push str._IPCSRVR_STARTED__Event_has_Set.
push ecx
call fcn.00a78f30
lea edx, [esp + 0x18]
push 1
push edx
call fcn.009a18a0
add esp, 0x10
xor ebx, ebx
xor ecx, ecx
call fcn.0098aa50
cmp dword [ebp + 0x10], 1
push ebx
jne 0x9a1cd3
push ebx
push fcn.009a1d20
call fcn.00a791b2
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x3f0]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
mov eax, 0xc
call 0x998760
push str.MS_InitializeIPCLayer
lea edx, [esp + 0x14]
push str.ERROR_____s_Function_Fails_return_MWIPCS_ERROR_UNSUPPORTED_Reason_above
push edx
mov ebx, eax
call fcn.00a78f30
add esp, 0xc
push 0
lea eax, [esp + 0x14]
push eax
call fcn.009a18a0
add esp, 8
test ebx, ebx
je 0x9a1aea
mov eax, dword [0xbdb3c4]
test eax, eax
je 0x9a1bad
call eax
cmp dword [0xbdb3b8], edi
je 0x9a1cbc
mov edi, 0xbdb3b8
call fcn.00970020
test eax, eax
jne 0x9a1cb2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x3e7
mov edi, eax
lea esi, [esp + 0x14]
call fcn.00960a40
add esp, 4
mov ecx, esi
push 0
push ecx
call fcn.009a18a0
push str.LOGFILE_MUTEX
mov edx, esi
push str.ERROR_____s_Unable_to_DestroyMutex_Mutex_reason_above
push edx
call fcn.00a78f30
add esp, 0x14
mov eax, esi
push 0
push eax
call fcn.009a18a0
add esp, 8
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x3f0]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
mov eax, 0xe
call 0x998760
lea ecx, [esp + 0x10]
push str.WARNING____Server_is_Already_Running...._Exiting_Now.
push ecx
mov ebx, eax
call fcn.00a78f30
lea edx, [esp + 0x18]
push 0
push edx
call fcn.009a18a0
add esp, 0x10
jmp 0x9a1b9a
mov eax, 0xd
call 0x998760
push str.MS_InitializeIPCLayer
mov ebx, eax
lea eax, [esp + 0x14]
push str.ERROR_____s_Function_Fails_return_MWIPCS_ERROR_SERVERINIT_Reason_above
push eax
call fcn.00a78f30
add esp, 0xc
push 0
lea ecx, [esp + 0x14]
push ecx
jmp 0x9a1b92
push eax
push str.MS_InitializeIPCLayer
lea edx, [esp + 0x18]
push str.ERROR_____s_Function_Fails_return__UNKNOWN_._Return_code__x
push edx
call fcn.00a78f30
lea eax, [esp + 0x20]
push edi
push eax
call fcn.009a18a0
add esp, 0x18
mov ebx, 0x80004005
jmp 0x9a1ba2
mov dword [0xbdb3b8], 0
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x3f0]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
call fcn.009a1d20
mov ecx, dword [esp + 0x400]
add esp, 4
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00a78f21
mov esp, ebp
pop ebp
ret