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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov dword [esp + 8], str.TortoClassicAppearanceConfig
mov dword [esp + 4], 1
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
sub esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40127d
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov dword [0x412008], eax
test eax, eax
je 0x401256
xor ecx, ecx
mov dword [esp], ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [section..bss], eax
test eax, eax
push ebx
je 0x401256
xor eax, eax
mov dword [esp], eax
call dword [sym.imp.USER32.dll_GetDC]
mov ebx, eax
test eax, eax
push edx
je 0x4012b6
mov dword [esp + 4], 0x5a
mov dword [esp], eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
xor edi, edi
mov dword [0x41200c], eax
push esi
push esi
mov dword [esp + 4], ebx
mov dword [esp], edi
call dword [sym.imp.USER32.dll_ReleaseDC]
push ebp
push ebp
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
call fcn.0040b4b0
test eax, eax
je 0x4012c5
lea edx, [esp + 0x20]
xor eax, eax
mov edi, edx
mov ecx, 0xb
rep stosd dword es:[edi], eax
lea ebx, [esp + 0x50]
lea ecx, [esp + 0x10]
mov dword [esp + 0x38], ecx
mov edi, ebx
mov ecx, 0xc
lea ebp, [esp + 0x4c]
rep stosd dword es:[edi], eax
mov edx, dword [section..bss]
mov dword [esp], ebp
mov esi, dword [sym.imp.COMCTL32.dll_CreatePropertySheetPageA]
mov dword [esp + 0x24], edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x18], 0x34
mov dword [esp + 0x1c], 0x2000105
mov dword [esp + 0x28], 0x64
mov dword [esp + 0x2c], 0x29
mov dword [esp + 0x3c], 0x401000
mov dword [esp + 0x4c], 0x34
mov dword [esp + 0x58], 0xc8
mov dword [esp + 0x64], 0x4035a0
call esi
test eax, eax
push edx
je 0x4011e1
mov edx, dword [esp + 0x30]
lea ecx, [edx + 1]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x38]
mov dword [ecx + edx*4], eax
xor eax, eax
mov ecx, 0xc
mov edi, ebx
mov dword [esp + 0x4c], 0x34
rep stosd dword es:[edi], eax
mov eax, dword [section..bss]
mov dword [esp], ebp
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], 0x190
mov dword [esp + 0x64], 0x40c080
call esi
test eax, eax
push edi
je 0x401229
mov edx, dword [esp + 0x30]
lea ecx, [edx + 1]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x38]
mov dword [ecx + edx*4], eax
lea eax, [esp + 0x18]
mov dword [esp], eax
call dword [sym.imp.COMCTL32.dll_PropertySheetA]
test eax, eax
push esi
js 0x401332
setne bl
and ebx, 0xff
call fcn.0040b550
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_ExitProcess]
xor eax, eax
xor edx, edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x3c
mov dword [esp + 4], 0x3e
mov dword [esp], edx
call fcn.00401670
mov ebx, 2
jmp 0x40124d
xor eax, eax
mov dword [esp + 0xc], str.Appearance_Properties
mov dword [esp + 8], 0x8002
mov dword [esp + 4], eax
mov dword [esp], eax
mov ebx, dword [sym.imp.USER32.dll_FindWindowExA]
call ebx
sub esp, 0x10
test eax, eax
je 0x4012e7
mov dword [esp], eax
mov ebx, 4
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push esi
jmp 0x40124d
mov dword [0x41200c], 0x60
jmp 0x401136
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0x3c
mov dword [esp + 4], 0x3d
mov dword [esp], ebx
call fcn.00401670
jmp 0x401276
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 0x4012a5
xor ebp, ebp
xor edi, edi
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0x8002
mov dword [esp + 4], ebp
mov dword [esp], ebp
call ebx
sub esp, 0x10
test eax, eax
jne 0x4012a5
jmp 0x4010cb
xor ecx, ecx
xor ebx, ebx
mov dword [esp], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0x3c
mov dword [esp + 4], 0x3d
call fcn.00401670
mov ebx, 2
jmp 0x401248