Function at 0x410ee0
Capabilities:
Check mutex on windows
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x589e40
mov eax, dword fs:[0]
push eax
sub esp, 0x58
mov eax, dword [0x5f0a00]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
push str.XSpeedSetupSoft
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x5f94c0], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x410f5a
push dword [0x5f94c0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x5f94c0], 0
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x411344
call fcn.0040d9d0
mov ecx, eax
call fcn.00422260
mov esi, eax
call fcn.0040d9d0
push 0xffffffffffffffff
mov ecx, eax
call fcn.00421f60
test esi, esi
je 0x410f4f
lea eax, [ebp - 0x58]
mov dword [ebp - 0x58], 0
push eax
mov dword [ebp - 0x4c], 0
call fcn.00470260
lea eax, [ebp - 0x4c]
push eax
call fcn.0046f540
mov ecx, dword [ebp - 0x4c]
add esp, 8
mov eax, dword [ecx]
push dword [ebp - 0x58]
call dword [eax + 0x14]
push 0x230
call fcn.005523ef
add esp, 4
mov dword [ebp - 0x60], 0x599c40
lea ecx, [ebp - 0x60]
push 0
push ecx
push str.SOUIHOST
push edi
push dword [ebp - 0x4c]
mov ecx, eax
call fcn.00448fc0
mov ebx, eax
call fcn.00429550
mov ecx, eax
call fcn.004280a0
call fcn.00429550
mov ecx, eax
call fcn.00428620
push 0
lea eax, [ebp - 0x48]
mov dword [ebp - 0x48], vtable.SOUI::TplSObjectFactory_class_SOUI::SSkinNewScrollbar_.0
push eax
lea ecx, [ebx + 4]
call fcn.004484b0
push 0
lea eax, [ebp - 0x48]
mov dword [ebp - 0x48], vtable.SOUI::TplSObjectFactory_class_SOUI::SCheckBox2_.0
push eax
lea ecx, [ebx + 4]
call fcn.004484b0
push 0
lea eax, [ebp - 0x48]
mov dword [ebp - 0x48], vtable.SOUI::TplSObjectFactory_class_SOUI::SRadioBox2_.0
push eax
lea ecx, [ebx + 4]
call fcn.004484b0
lea eax, [ebp - 0x54]
mov ecx, ebx
push eax
call fcn.0044c330
push dword [ebp - 0x54]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea eax, [ebp - 0x54]
mov ecx, ebx
push eax
call fcn.0045a9c0
push 0x599fac
lea ecx, [ebp - 0x48]
call fcn.0040db80
push 0x8b
lea eax, [ebp - 0x48]
mov ecx, ebx
push eax
push 0x59a008
call fcn.004539e0
mov byte [ebp - 0x41], al
mov ecx, dword [ebp - 0x48]
or edi, 0xffffffff
add ecx, 0xfffffff4
mov dword [ebp - 4], 0
cmp ecx, dword [0x5f012c]
je 0x41109b
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x41109b
push ecx
call fcn.00408c50
add esp, 4
cmp byte [ebp - 0x41], 0
mov dword [ebp - 4], 0xffffffff
je 0x41116c
push str.white
lea ecx, [ebp - 0x64]
call fcn.0040db80
mov eax, dword [0x5f0130]
push 0x14
mov dword [ebp - 0x48], eax
call fcn.00440020
add esp, 4
test eax, eax
je 0x411100
mov dword [eax], 1
xor ecx, ecx
mov dword [eax + 4], 3
mov dword [eax + 8], 3
mov word [eax + 0x12], cx
lea ecx, [eax + 0xc]
mov eax, dword [0x599fac]
mov dword [ebp - 0x48], ecx
mov dword [ecx], eax
mov ax, word [0x599fb0]
mov word [ecx + 4], ax
mov esi, dword [ebp - 0x64]
lea eax, [ebp - 0x48]
push 0x8b
push eax
push esi
mov ecx, ebx
call fcn.0045c1d0
mov byte [ebp - 0x41], al
mov edx, dword [ebp - 0x48]
add edx, 0xfffffff4
mov dword [ebp - 4], 3
cmp edx, dword [0x5f012c]
je 0x411140
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x411140
push edx
call fcn.00408c50
add esp, 4
add esi, 0xfffffff4
mov dword [ebp - 4], 4
cmp esi, dword [0x5f012c]
je 0x411166
mov eax, edi
lock xadd dword [esi], eax
dec eax
test eax, eax
jg 0x411166
push esi
call fcn.00408c50
add esp, 4
cmp byte [ebp - 0x41], 0
jne 0x411183
test ebx, ebx
je 0x411178
mov eax, dword [ebx]
mov ecx, ebx
push 1
call dword [eax]
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x4112f7
lea eax, [ebp - 0x50]
mov dword [ebp - 0x50], 0
push eax
mov dword [ebp - 4], 0xffffffff
call fcn.004721f0
add esp, 4
mov ecx, ebx
push dword [ebp - 0x50]
call fcn.0045d2d0
lea eax, [ebp - 0x40]
push eax
call fcn.00437100
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00436dd0
add esp, 0xc
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], 7
lea ecx, [ebp - 0x5c]
cmova eax, dword [ebp - 0x28]
push eax
call fcn.0040db80
lea eax, [ebp - 0x5c]
push ebx
push eax
call fcn.0040e750
add esp, 8
lea ecx, [ebp - 0x5c]
call fcn.0040bf10
call fcn.0040ef00
mov esi, eax
cmp esi, 1
je 0x41121f
cmp esi, 2
je 0x41121f
cmp esi, 3
je 0x41121f
cmp esi, 7
je 0x41121f
push 0
push 0x59a024
push 0x59a030
push 0
call fcn.0046b5b0
add esp, 0x10
jmp 0x4112b6
push 0x568
call fcn.005523ef
add esp, 4
mov ecx, eax
call fcn.00418f10
mov edi, eax
push esi
mov ecx, edi
call fcn.0041c010
push 0
push 0
push 0
push 0
push 0x40000
push 0x86880000
push 0
mov ecx, edi
call fcn.00465d40
test edi, edi
lea eax, [edi + 0x38c]
push 0
mov ecx, 0xc
mov esi, edi
push 0
cmove eax, ecx
cmovne esi, edi
push 0x110
push dword [eax]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esi + 0x380]
lea ecx, [esi + 0x380]
push 5
call dword [eax + 0xc]
push 0
lea ecx, [esi + 0x380]
call fcn.00463b80
push dword [edi + 0x38c]
mov ecx, ebx
call fcn.0045a960
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
push 1
call dword [eax]
or edi, 0xffffffff
test ebx, ebx
je 0x4112c2
mov eax, dword [ebx]
mov ecx, ebx
push 1
call dword [eax]
call fcn.00429550
mov ecx, eax
call fcn.00428760
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 0x28]
call fcn.0040bf90
lea ecx, [ebp - 0x40]
call fcn.0040ddb0
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 4], 8
test ecx, ecx
je 0x4112f7
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [ebp - 0x54]
add eax, 0xfffffff4
mov dword [ebp - 4], 9
cmp eax, dword [0x5f012c]
je 0x41131e
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x41131e
push eax
call fcn.00408c50
add esp, 4
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 4], 0xa
test ecx, ecx
je 0x411331
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 4], 0xb
test ecx, ecx
je 0x411344
mov eax, dword [ecx]
call dword [eax + 8]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00551e44
mov esp, ebp
pop ebp
ret 0x10