Function at 0x401090
Capabilities:
Check mutex and terminate process on windows
Check mutex on windows
Terminate process

Disassembly:
push edi
push esi
push ebx
sub esp, 0x90
mov dword [esp + 8], str.TortoClassicAppearanceConfig
mov dword [esp + 4], 1
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
sub esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40124b
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov dword [0x413008], eax
test eax, eax
je 0x401224
xor eax, eax
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [section..bss], eax
push edx
test eax, eax
je 0x401224
xor esi, esi
mov dword [esp], esi
call dword [sym.imp.USER32.dll_GetDC]
mov ebx, eax
push edi
test eax, eax
je 0x401284
mov dword [esp + 4], 0x5a
mov dword [esp], eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
xor ecx, ecx
push edx
push edx
mov dword [0x41300c], eax
mov dword [esp + 4], ebx
mov dword [esp], ecx
call dword [sym.imp.USER32.dll_ReleaseDC]
push ebx
push ebx
mov eax, 8
mov edx, 0xc010
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x24], edx
mov dword [esp], eax
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
push eax
call main
test eax, eax
je 0x401293
lea edx, [esp + 0x30]
xor eax, eax
mov ecx, 0xb
mov ebx, 0x2000105
mov edi, edx
mov edx, dword [section..bss]
lea esi, [esp + 0x5c]
mov dword [esp + 0x5c], 0x34
rep stosd dword es:[edi], eax
mov ecx, 0x34
mov dword [esp + 0x2c], ebx
lea ebx, [esp + 0x60]
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x1c]
mov edi, ebx
mov dword [esp + 0x48], ecx
mov ecx, 0xc
rep stosd dword es:[edi], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], 0x64
mov dword [esp + 0x3c], 0x29
mov dword [esp + 0x4c], 0x401000
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], 0xc8
mov dword [esp + 0x74], 0x4035e0
mov dword [esp], esi
call dword [sym.imp.COMCTL32.dll_CreatePropertySheetPageW]
push edi
test eax, eax
je 0x4011fa
mov edx, dword [esp + 0x40]
lea ecx, [edx + 1]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x48]
mov dword [ecx + edx*4], eax
lea eax, [esp + 0x28]
mov dword [esp], eax
call dword [sym.imp.COMCTL32.dll_PropertySheetW]
push esi
test eax, eax
js 0x401308
setne bl
movzx ebx, bl
call fcn.0040baa0
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_ExitProcess]
xor eax, eax
xor edx, edx
mov dword [esp + 8], 0x3c
mov ebx, 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x3e
mov dword [esp], edx
call fcn.00401620
jmp 0x40121b
xor eax, eax
mov dword [esp + 0xc], str.Appearance_Properties
mov ebx, dword [sym.imp.USER32.dll_FindWindowExW]
mov dword [esp + 8], 0x8002
mov dword [esp + 4], eax
mov dword [esp], eax
call ebx
sub esp, 0x10
test eax, eax
je 0x4012bd
mov dword [esp], eax
mov ebx, 4
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push ecx
jmp 0x40121b
mov dword [0x41300c], 0x60
jmp 0x401135
xor eax, eax
mov dword [esp + 8], 0x3c
mov ebx, 2
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 4], 0x3d
mov dword [esp], eax
call fcn.00401620
jmp 0x40121b
xor eax, eax
mov dword [esp + 0xc], str.Propiedades_de_Apariencia
mov dword [esp + 8], 0x8002
mov dword [esp + 4], eax
mov dword [esp], eax
call ebx
sub esp, 0x10
test eax, eax
jne 0x401273
xor edi, edi
xor esi, esi
mov dword [esp + 8], 0x8002
mov dword [esp + 0xc], esi
mov dword [esp + 4], edi
mov dword [esp], edi
call ebx
sub esp, 0x10
test eax, eax
jne 0x401273
jmp 0x4010ca
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 8], 0x3c
mov dword [esp], ebx
mov ebx, 2
mov dword [esp + 0xc], ecx
mov dword [esp + 4], 0x3d
call fcn.00401620
jmp 0x401216