Function at 0x10004125
Capabilities:
Check mutex on windows

Disassembly:
sub esp, 0x448
push ebx
push esi
push edi
fld qword [esp + 0x458]
push 0x1003f324
push 1
fstp qword [0x100639bc]
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x100639b0], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x100043f5
push 0
push 0
push 0xffffffffffffffff
push dword [esp + 0x46c]
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edx, eax
sar edx, 0x1f
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
push dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
add ecx, ecx
push ecx
call fcn.10004d7c
add esp, 4
mov dword [esp + 0x54], eax
push eax
push 0xffffffffffffffff
push dword [esp + 0x46c]
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edx, dword [esp + 0x50]
push 0
push 0x10003877
mov dword [0x100639b4], edx
fld qword [esp + 0x460]
sub esp, 8
fnstcw word [esp + 4]
fldcw word [0x1003f2cc]
fistp dword [esp]
fldcw word [esp + 4]
pop esi
add esp, 4
push esi
push 0x4b0
push dword [0x10063bc8]
call dword [sym.imp.USER32.dll_CreateDialogParamW]
test eax, eax
mov dword [0x10063bc4], eax
jne 0x100042c5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
push 0x100
push 0
lea ecx, [esp + 0x5c]
push ecx
call fcn.10004e04
push 0x100
push 0
lea edx, [esp + 0x268]
push edx
call fcn.10004e04
push 0
push 0xff
lea ecx, [esp + 0x274]
push ecx
push 0x400
push edi
push 0
push 0x1000
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
add esp, 0x18
test edi, edi
je 0x10004298
lea ecx, [esp + 0x254]
test edi, edi
push ecx
je 0x10004276
mov edx, edi
and edx, 0xffff
or edx, 0x80070000
jmp 0x10004278
xor edx, edx
push edx
push 0x1be
push 0x1003f33c
push 0x1003f398
lea ecx, [esp + 0x68]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
jmp 0x100042b5
push 0x1be
push 0x1003f33c
push 0x1003f400
lea edx, [esp + 0x60]
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push 0x10
push 0
lea edx, [esp + 0x5c]
push edx
push esi
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp dword [0x10063bc4], 0
je 0x100043e9
lea edx, [esp + 0x14]
push edx
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
lea ecx, [esp + 0x24]
push ecx
push dword [0x10063bc4]
call dword [sym.imp.USER32.dll_GetClientRect]
mov edx, dword [esp + 0x1c]
test edx, edx
jns 0x100042f8
inc edx
sar edx, 1
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jns 0x10004303
inc ecx
sar ecx, 1
sub edx, ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
test edx, edx
jns 0x10004314
inc edx
sar edx, 1
mov ecx, dword [esp + 0x30]
test ecx, ecx
jns 0x1000431f
inc ecx
sar ecx, 1
sub edx, ecx
mov dword [esp + 0x18], edx
push 1
push dword [esp + 0x34]
push dword [esp + 0x34]
push edx
push dword [esp + 0x24]
push dword [0x10063bc4]
call dword [sym.imp.USER32.dll_MoveWindow]
push 0
push esi
call dword [sym.imp.USER32.dll_EnableWindow]
push 0
push 0
push 0
lea edx, [esp + 0x40]
push edx
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x1000439b
lea ecx, [esp + 0x34]
push ecx
push ebx
call dword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x10004386
lea edx, [esp + 0x34]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [esp + 0x34]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea edx, [esp + 0x40]
push edx
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x10004360
push 1
push esi
call dword [sym.imp.USER32.dll_EnableWindow]
push esi
call dword [sym.imp.USER32.dll_SetActiveWindow]
push dword [esp + 0x50]
call fcn.10004d8c
mov eax, dword [esp + 0x46c]
sub eax, dword [esp + 0x464]
push eax
push dword [esp + 0x468]
lea ecx, [esp + 0x474]
call fcn.10004484
add esp, 4
fld qword [0x1003f44c]
pop edi
pop esi
pop ebx
add esp, 0x448
ret
push dword [0x100639b0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x468]
sub eax, dword [esp + 0x460]
push eax
push dword [esp + 0x464]
lea ecx, [esp + 0x470]
call fcn.10004484
fldz
pop edi
pop esi
pop ebx
add esp, 0x448
ret