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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x428
mov eax, dword [0x100805c]
push ebx
push edi
xor edi, edi
cmp dword [0x10081f0], edi
mov dword [ebp - 4], eax
mov dword [ebp - 0x418], edi
je 0x1002fd4
call fcn.010028a9
test eax, eax
jne 0x1002fd4
movzx eax, word [0x1008528]
push 0x11010
push eax
push edi
push 0xea66
push dword [ebp - 0x418]
call fcn.01001eee
add esp, 0x14
xor eax, eax
jmp 0x1003232
push esi
push edi
lea eax, [ebp - 0x414]
push eax
push edi
push edi
push 0x1008bc0
call fcn.01004240
add esp, 0x14
push 0x1001494
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x20c]
push eax
xor esi, esi
inc esi
push esi
push edi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
cmp eax, edi
mov dword [ebp - 0x41c], eax
je 0x1003207
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x1003207
cmp dword [0x1008520], edi
jne 0x10030a8
lea eax, [ebp - 0x428]
push eax
push edi
lea eax, [ebp - 0x418]
push eax
push fcn.01002eaa
push edi
push edi
mov dword [0x1008530], esi
mov dword [ebp - 0x418], edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, edi
je 0x1003088
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x100308e
push edi
call fcn.01002eaa
cmp dword [0x1008520], edi
jne 0x10030a8
jmp 0x10030a0
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x418], edi
je 0x1003098
mov esi, dword [0x1008544]
mov eax, dword [0x1008540]
neg esi
sbb esi, esi
and esi, 8
neg eax
sbb eax, eax
and eax, 4
or esi, eax
mov eax, dword [0x100853c]
neg eax
sbb eax, eax
and eax, 2
or esi, eax
xor eax, eax
cmp dword [0x1008548], edi
push 0x7f02
setne al
push edi
or esi, eax
call dword [sym.imp.USER32.dll_LoadCursorW]
mov ebx, dword [sym.imp.USER32.dll_SetCursor]
push eax
call ebx
push edi
mov dword [ebp - 0x420], eax
lea eax, [ebp - 0x424]
push eax
push esi
push 0x1008bc0
push 0x1008038
call sub.OCMANAGE.dll_OcInitialize
cmp eax, edi
push dword [ebp - 0x420]
mov dword [0x100852c], eax
jne 0x100314c
call ebx
cmp dword [ebp - 0x424], edi
je 0x1003223
movzx eax, word [0x1008528]
push 0x11010
push eax
push edi
push 0xea62
push dword [ebp - 0x418]
jmp 0x100321b
push dword [ebp - 0x418]
push eax
call fcn.0100375d
push dword [ebp - 0x420]
call ebx
push 0x7f02
push edi
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call ebx
cmp dword [0x1008520], edi
mov esi, eax
jne 0x10031bc
lea eax, [ebp - 0x428]
push eax
push edi
lea eax, [ebp - 0x418]
push eax
push fcn.01002eaa
push edi
push edi
mov dword [0x1008530], edi
mov dword [ebp - 0x418], edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, edi
je 0x10031b6
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x10031bc
push edi
call fcn.01002eaa
push 0x100852c
call sub.OCMANAGE.dll_OcTerminate
cmp dword [0x1008520], edi
jne 0x10031f3
jmp 0x10031d8
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x418], edi
je 0x10031d0
push edi
push edi
push 0x8000
push dword [ebp - 0x418]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebp - 0x41c]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
call ebx
xor eax, eax
inc eax
jmp 0x1003231
movzx eax, word [0x1008528]
push 0x11030
push eax
push edi
push 0xea64
push edi
call fcn.01001eee
add esp, 0x14
push dword [ebp - 0x41c]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
pop edi
pop ebx
call fcn.01003b81
leave
ret