Function at 0x4017e2
Capabilities:
Check mutex on windows

Disassembly:
sub esp, 0x138
push ebx
push ebp
push esi
push edi
lea ecx, [esp + 0x20]
call fcn.00401702
xor ecx, ecx
mov dword [esp + 0x2c], eax
push 0x400
mov edi, ecx
mov dword [esp + 0x18], ecx
mov esi, ecx
mov dword [esp + 0x38], edi
push ecx
mov dword [esp + 0x20], esi
mov ebp, ecx
mov dword [esp + 0x18], 0x404190
mov dword [esp + 0x2c], ecx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, eax
mov ecx, str.RELATIVE_CLASSPATH
mov dword [esp + 0x30], ebx
call fcn.00402441
test eax, eax
je 0x40184e
mov ecx, str.RELATIVE_CLASSPATH
call fcn.00402462
mov dword [esp + 0x14], eax
mov ecx, str.EXTDIRS
call fcn.00402441
test eax, eax
je 0x40186a
mov ecx, str.EXTDIRS
call fcn.00402462
mov dword [esp + 0x10], eax
mov ecx, str.EXTFLAGS
call fcn.00402441
test eax, eax
je 0x4018aa
mov ecx, str.EXTFLAGS
call fcn.00402462
push eax
call dword [sym.imp.msvcrt.dll__strupr]
mov ebp, eax
pop ecx
test ebp, ebp
je 0x4018aa
push str.SERVER
push ebp
call dword [sym.imp.msvcrt.dll_strstr]
pop ecx
pop ecx
test eax, eax
push 1
pop eax
cmovne esi, eax
mov dword [esp + 0x18], esi
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push esi
call fcn.00402f5c
pop ecx
test ebp, ebp
je 0x401929
push str.SHARE
push ebp
call dword [sym.imp.msvcrt.dll_strstr]
pop ecx
pop ecx
test eax, eax
je 0x4018ec
push dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
call fcn.004025ea
mov dword [esp + 0x28], eax
pop ecx
test eax, eax
jne 0x4018ec
xor edi, edi
jmp 0x402147
push str.SINGLE
push ebp
call dword [sym.imp.msvcrt.dll_strstr]
pop ecx
pop ecx
test eax, eax
je 0x401929
mov ecx, str.SINGLE
call fcn.004028a3
push eax
xor eax, eax
inc eax
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x401929
xor edi, edi
jmp 0x402131
mov ecx, str.SPLASH_IMAGE
call fcn.00402441
mov dword [esp + 0x10], eax
test eax, eax
jle 0x4019aa
mov ecx, str.SPLASH_IMAGE
call fcn.00402462
mov dword [esp + 0x14], eax
test eax, eax
je 0x4019aa
push str.splashscreen.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x40832c], eax
test eax, eax
je 0x4019aa
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SplashInit
push eax
call esi
push str.SplashLoadMemory
push dword [0x40832c]
mov dword [0x408330], eax
call esi
mov ecx, dword [0x408330]
mov dword [0x408328], eax
test ecx, ecx
je 0x4019a6
test eax, eax
je 0x4019a6
call ecx
push dword [esp + 0x10]
push dword [esp + 0x18]
call dword [0x408328]
pop ecx
pop ecx
mov esi, dword [esp + 0x18]
mov ecx, str.VMARGS
call fcn.00402441
test eax, eax
je 0x4019c4
mov ecx, str.VMARGS
call fcn.00402462
jmp 0x4019c6
mov eax, edi
lea ecx, [esp + 0x10]
mov edx, esi
push ecx
mov ecx, eax
call fcn.00402b59
mov eax, dword [esp + 0x14]
add eax, 6
pop ecx
cmp eax, 7
ja case.default.0x4019e5
jmp dword [eax*4 + 0x4021fa]
call fcn.00402cd8
mov esi, eax
mov ecx, 0x404220
mov dword [esp + 0x14], esi
call fcn.00402462
cmp dword [eax], esi
jbe 0x401a25
add eax, 4
push eax
push 8
pop edi
mov ecx, edi
call fcn.0040292c
push eax
push ebx
call dword [sym.imp.msvcrt.dll_sprintf]
add esp, 0xc
mov ecx, ebx
jmp 0x4020f2
mov eax, dword [0x4063a8]
mov ecx, 0x404230
mov esi, dword [eax]
call fcn.00402441
push eax
mov ecx, 0x404230
call fcn.00402462
push eax
push 0
push str.URLConnection
push dword [0x4063a8]
call dword [esi + 0x14]
test eax, eax
jne 0x401a5f
push str.URLConnection
push 9
jmp 0x401a0b
mov eax, dword [0x4063a8]
mov ecx, str.URL_STREAM_HANDLER
mov esi, dword [eax]
call fcn.00402441
push eax
mov ecx, str.URL_STREAM_HANDLER
call fcn.00402462
push eax
push 0
push 0x404264
push dword [0x4063a8]
call dword [esi + 0x14]
test eax, eax
jne 0x401a97
push 0x404264
jmp 0x401a5b
test ebp, ebp
je 0x401ab1
push str.NOLOG
push ebp
call dword [sym.imp.msvcrt.dll_strstr]
pop ecx
pop ecx
test eax, eax
jne 0x401b5a
mov eax, dword [0x4063a8]
mov ebp, str.FILELOG_STREAM
mov ecx, ebp
mov esi, dword [eax]
call fcn.00402441
push eax
mov ecx, ebp
call fcn.00402462
push eax
push 0
push str.FileLogStream
push dword [0x4063a8]
call dword [esi + 0x14]
mov ebp, eax
test ebp, ebp
je 0x401b5a
mov ecx, dword [0x4063a8]
push 0x4042a0
push str.initialize
push ebp
mov edx, dword [ecx]
push ecx
call dword [edx + 0x1c4]
mov dword [esp + 0x10], eax
test eax, eax
je 0x401b5a
push 0x104
lea eax, [esp + 0x48]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov ecx, dword [0x4063a8]
lea edx, [esp + 0x44]
mov esi, dword [ecx]
call fcn.00402e42
push eax
push dword [esp + 0x14]
push ebp
push dword [0x4063a8]
call dword [esi + 0x234]
mov eax, dword [0x4063a8]
add esp, 0x10
mov ecx, dword [eax]
push eax
call dword [ecx + 0x390]
test al, al
je 0x401b5a
mov eax, dword [0x4063a8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
cmp dword [esp + 0x14], 0x1050000
jb 0x401c0b
mov eax, dword [0x4063a8]
mov ebp, 0x4042c4
mov ecx, ebp
mov esi, dword [eax]
call fcn.00402441
push eax
mov ecx, ebp
call fcn.00402462
push eax
xor ebp, ebp
push ebp
push str.UncaughtHandler
push dword [0x4063a8]
call dword [esi + 0x14]
mov esi, eax
test esi, esi
je 0x401c0d
mov ecx, dword [0x4063a8]
push 0x4042e8
push str.initialize
push esi
mov edx, dword [ecx]
push ecx
call dword [edx + 0x1c4]
test eax, eax
je 0x401c0d
mov ecx, dword [0x4063a8]
push eax
push esi
push ecx
mov edx, dword [ecx]
call dword [edx + 0x234]
mov eax, dword [0x4063a8]
lea edx, [esp + 0x44]
add esp, 0xc
mov dword [esp + 0x38], 0x4042ec
mov dword [esp + 0x3c], 0x404300
mov dword [esp + 0x40], 0x4025cd
mov ecx, dword [eax]
push 1
push edx
push esi
push eax
call dword [ecx + 0x35c]
test eax, eax
je 0x401c0d
push 0x4042ec
push 0xd
jmp 0x401a0b
xor ebp, ebp
mov ecx, str.PACK_LOADER
call fcn.00402462
test eax, eax
je 0x401e8e
mov eax, dword [0x4063a8]
mov ecx, str.PACK_LOADER
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x1c], ebp
mov esi, dword [eax]
mov dword [esp + 0x18], ebp
call fcn.00402441
push eax
mov ecx, str.PACK_LOADER
call fcn.00402462
push eax
push ebp
push str.PackLoader
push dword [0x4063a8]
call dword [esi + 0x14]
mov ebp, eax
test ebp, ebp
jne 0x401c6b
push str.PackLoader
jmp 0x401a5b
mov eax, dword [0x4063a8]
push 0x4042e8
push 0x404340
push ebp
mov ecx, dword [eax]
push eax
call dword [ecx + 0x84]
mov edx, eax
test edx, edx
jne 0x401c96
push str.PackLoaderinit__
push 0xa
jmp 0x401a0b
mov eax, dword [0x4063a8]
push edx
push ebp
push eax
mov ecx, dword [eax]
call dword [ecx + 0x70]
add esp, 0xc
mov dword [esp + 0x28], eax
test eax, eax
jne 0x401cba
push str.PackLoader
push 0xb
jmp 0x401a0b
mov ecx, str.CLASSES_PACK_GZ
call fcn.00402462
test eax, eax
je 0x401d1a
mov eax, dword [0x4063a8]
mov ecx, str.CLASSES_PACK_GZ
mov esi, dword [eax]
call fcn.00402441
push eax
push dword [0x4063a8]
call dword [esi + 0x2c0]
mov edx, dword [0x4063a8]
mov ecx, str.CLASSES_PACK_GZ
mov dword [esp + 0x10], eax
mov esi, dword [edx]
call fcn.00402462
push eax
mov ecx, str.CLASSES_PACK_GZ
call fcn.00402441
push eax
push 0
push dword [esp + 0x1c]
push dword [0x4063a8]
call dword [esi + 0x340]
mov ecx, str.RESOURCES_GZ
call fcn.00402462
test eax, eax
je 0x401d7a
mov eax, dword [0x4063a8]
mov ecx, str.RESOURCES_GZ
mov esi, dword [eax]
call fcn.00402441
push eax
push dword [0x4063a8]
call dword [esi + 0x2c0]
mov edx, dword [0x4063a8]
mov ecx, str.RESOURCES_GZ
mov dword [esp + 0x14], eax
mov esi, dword [edx]
call fcn.00402462
push eax
mov ecx, str.RESOURCES_GZ
call fcn.00402441
push eax
push 0
push dword [esp + 0x20]
push dword [0x4063a8]
call dword [esi + 0x340]
mov ecx, str.SPLASH_PATH
call fcn.00402462
test eax, eax
je 0x401dda
mov eax, dword [0x4063a8]
mov ecx, str.SPLASH_PATH
mov esi, dword [eax]
call fcn.00402441
push eax
push dword [0x4063a8]
call dword [esi + 0x2c0]
mov edx, dword [0x4063a8]
mov ecx, str.SPLASH_PATH
mov dword [esp + 0x1c], eax
mov esi, dword [edx]
call fcn.00402462
push eax
mov ecx, str.SPLASH_PATH
call fcn.00402441
push eax
push 0
push dword [esp + 0x28]
push dword [0x4063a8]
call dword [esi + 0x340]
mov ecx, str.SPLATH_IMAGE
call fcn.00402462
test eax, eax
je 0x401e3a
mov eax, dword [0x4063a8]
mov ecx, str.SPLASH_IMAGE
mov esi, dword [eax]
call fcn.00402441
push eax
push dword [0x4063a8]
call dword [esi + 0x2c0]
mov edx, dword [0x4063a8]
mov ecx, str.SPLASH_IMAGE
mov dword [esp + 0x18], eax
mov esi, dword [edx]
call fcn.00402462
push eax
mov ecx, str.SPLASH_IMAGE
call fcn.00402441
push eax
push 0
push dword [esp + 0x24]
push dword [0x4063a8]
call dword [esi + 0x340]
mov eax, dword [0x4063a8]
push str.__B_B_B_B_Ljava_lang_Class_
push str.initialize
push ebp
mov ecx, dword [eax]
push eax
call dword [ecx + 0x84]
mov edx, eax
test edx, edx
jne 0x401e63
push str.PackLoaderinitialize_byte____byte____byte____byte___
jmp 0x401c8f
push dword [esp + 0x18]
mov eax, dword [0x4063a8]
push dword [esp + 0x20]
push dword [esp + 0x1c]
mov ecx, dword [eax]
push dword [esp + 0x1c]
push edx
push dword [esp + 0x3c]
push eax
call dword [ecx + 0x88]
add esp, 0x1c
jmp 0x401fbc
mov ecx, str.CLASSIC_LOADER
call fcn.00402462
test eax, eax
je 0x4020e2
mov eax, dword [0x4063a8]
mov ecx, str.CLASSIC_LOADER
mov esi, dword [eax]
call fcn.00402441
push eax
mov ecx, str.CLASSIC_LOADER
call fcn.00402462
push eax
push ebp
push str.ClassicLoader
push dword [0x4063a8]
call dword [esi + 0x14]
mov ebp, eax
test ebp, ebp
jne 0x401edc
push str.ClassicLoader
jmp 0x401a5b
mov eax, dword [0x4063a8]
push 0x4042e8
push 0x404340
push ebp
mov ecx, dword [eax]
push eax
call dword [ecx + 0x84]
mov edx, eax
test edx, edx
jne 0x401f05
push str.ClassicLoaderinit__
jmp 0x401c8f
mov eax, dword [0x4063a8]
push edx
push ebp
push eax
mov ecx, dword [eax]
call dword [ecx + 0x70]
add esp, 0xc
mov dword [esp + 0x28], eax
test eax, eax
jne 0x401f27
push str.ClassicLoader
jmp 0x401cb3
mov eax, dword [0x4063a8]
mov ecx, 0x404424
mov esi, dword [eax]
call fcn.00402441
push eax
push dword [0x4063a8]
call dword [esi + 0x2c0]
mov edx, dword [0x4063a8]
mov ecx, 0x404424
mov dword [esp + 0x10], eax
mov esi, dword [edx]
call fcn.00402462
push eax
mov ecx, 0x404424
call fcn.00402441
push eax
push 0
push dword [esp + 0x1c]
push dword [0x4063a8]
call dword [esi + 0x340]
mov eax, dword [0x4063a8]
push str.__B_Ljava_lang_Class_
push str.initialize
push ebp
mov ecx, dword [eax]
push eax
call dword [ecx + 0x84]
mov edx, eax
test edx, edx
jne 0x401fa2
push str.ClassicLoaderinitialize_byte___
jmp 0x401c8f
mov eax, dword [0x4063a8]
push dword [esp + 0x10]
push edx
mov ecx, dword [eax]
push dword [esp + 0x30]
push eax
call dword [ecx + 0x88]
add esp, 0x10
mov edx, eax
mov dword [0x406390], edx
test edx, edx
jne 0x401fee
push 0xe
pop edi
mov ecx, edi
call fcn.0040292c
push eax
push str._s_r_n
push ebx
call dword [sym.imp.msvcrt.dll_sprintf]
add esp, 0xc
mov ecx, ebx
call fcn.00402483
jmp 0x402131
mov eax, dword [0x4063a8]
push str.__Ljava_lang_String__V
push 0x404484
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c4]
mov dword [0x406394], eax
test eax, eax
jne 0x402017
push 0xf
jmp 0x4020e8
mov eax, dword [0x4063a8]
push 0
push 0x40448c
push eax
mov esi, dword [eax]
call dword [esi + 0x18]
push eax
mov eax, dword [esp + 0x28]
dec eax
push eax
push dword [0x4063a8]
call dword [esi + 0x2b0]
mov esi, eax
xor eax, eax
inc eax
mov dword [esp + 0x10], esi
mov ebp, eax
cmp dword [esp + 0x20], eax
jle 0x402088
mov edi, dword [esp + 0x2c]
mov ebx, esi
mov ecx, dword [0x4063a8]
mov edx, dword [edi + ebp*4]
mov esi, dword [ecx]
call fcn.00402e42
push eax
lea eax, [ebp - 1]
push eax
push ebx
push dword [0x4063a8]
call dword [esi + 0x2b8]
inc ebp
cmp ebp, dword [esp + 0x20]
jl 0x402053
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
test ebp, ebp
je 0x4020a4
push ebp
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [0x4063a8]
push esi
push dword [0x406394]
push dword [0x406390]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x234]
mov eax, dword [0x4063a8]
add esp, 0x10
mov ecx, dword [eax]
push eax
call dword [ecx + 0x390]
cmp al, 1
jne 0x402131
xor ecx, ecx
call fcn.00402483
xor eax, eax
lea edi, [eax + 1]
jmp 0x402131
push 0xc
jmp 0x4020e8
push 2
pop edi
mov ecx, edi
call fcn.0040292c
mov ecx, eax
call fcn.00402587
jmp 0x402131
push 3
jmp 0x4020e8
push 4
jmp 0x4020e8
push 5
jmp 0x4020e8
push 6
jmp 0x4020e8
push 7
pop ecx
call fcn.0040292c
mov ecx, eax
call fcn.00402587
push 7
pop edi
jmp 0x402131
xor ebp, ebp
lea ecx, [ebp + 1]
call fcn.0040292c
mov ecx, eax
call fcn.00402587
lea edi, [ebp + 1]
mov ebp, dword [esp + 0x24]
test ebp, ebp
je 0x402147
push ebp
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x40215b
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [0x4063a8], 0
je 0x40216f
mov eax, dword [0x4063ac]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov ecx, dword [0x4063ac]
test ecx, ecx
je 0x402186
mov eax, dword [ecx]
push ecx
call dword [eax + 0xc]
and dword [0x4063ac], 0
mov eax, dword [0x4063a4]
test eax, eax
je 0x4021a3
push 0
push 0
push 0x12
push eax
call dword [sym.imp.USER32.dll_PostThreadMessageA]
and dword [0x4063a4], 0
mov eax, dword [0x4063a0]
test eax, eax
je 0x4021c6
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x4063a0]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov dword [0x4063a0], ecx
mov eax, dword [0x40639c]
test eax, eax
je 0x4021eb
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [0x40639c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [0x40639c], 0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x138
ret 0x10