Function at 0x42ace3
Capabilities:
Check mutex on windows
Get common file path
Read .ini file

Disassembly:
push 0x364
mov eax, 0x4ec8e7
call fcn.00495bb6
mov ebx, ecx
push 0xfffffffffffffff0
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0xfffaffff
push eax
push 0xfffffffffffffff0
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetWindowLongW]
call fcn.00403cdb
mov edx, ebx
lea ecx, [ebx + 0x2c]
neg edx
mov esi, str.cn_zh
push esi
sbb edx, edx
and edx, ecx
push 0x4fbcf8
mov dword [eax + 0x128], edx
call fcn.00403cdb
mov ecx, eax
call fcn.00430648
push 0x4f3628
push 0x4fbd18
call fcn.00403cdb
mov ecx, eax
call fcn.00430648
push 0x208
xor edi, edi
lea eax, [ebp - 0x318]
push edi
push eax
call fcn.00497890
add esp, 0xc
lea eax, [ebp - 0x318]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea eax, [ebp - 0x318]
push eax
push str._sconfig.ini
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [ebp - 0x318]
push eax
push 1
push 0x4fbd54
push str.config
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
test eax, eax
jne 0x42adb6
push 0x4f3628
jmp 0x42adb7
push esi
call fcn.00403cdb
mov ecx, eax
call fcn.00430efa
mov ecx, ebx
lea eax, [ebx + 0x770]
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, dword [0x53b050]
push ecx
mov ecx, 0x53b050
call dword [eax]
lea esi, [ebx + 0x30]
push str.edt_dpi
mov ecx, esi
call fcn.00432888
push 0x50
mov dword [ebx + 0x780], eax
call dword [sym.imp.USER32.dll_GetSystemMetrics]
lea ecx, [ebp - 0x368]
call fcn.0042906d
lea eax, [ebp - 0x338]
mov dword [ebp - 4], edi
push eax
lea ecx, [ebp - 0x368]
call fcn.004291ce
push dword [ebp - 0x32c]
push dword [ebp - 0x330]
push str.screen_size__d_x__d_n
call fcn.0042e448
mov eax, dword [ebp - 0x330]
add esp, 0xc
sub eax, dword [ebp - 0x338]
mov edx, 0x99c
cmp eax, 0x76c
jl 0x42ae57
cmp eax, edx
jge 0x42ae57
push 0x90
jmp 0x42ae74
mov ecx, 0xe6a
cmp eax, edx
jl 0x42ae6b
cmp eax, ecx
jge 0x42ae6f
push 0xc0
jmp 0x42ae74
cmp eax, ecx
jl 0x42ae7b
push 0x120
mov ecx, esi
call fcn.00438462
lea eax, [ebp - 0x370]
mov ecx, esi
push eax
call fcn.00433656
mov ecx, esi
call fcn.00432abe
mov ecx, eax
call fcn.00456f97
mov ecx, eax
mov eax, dword [ebp - 0x36c]
push edi
imul eax, ecx
push 0x64
pop edi
cdq
idiv edi
push eax
mov eax, dword [ebp - 0x370]
imul eax, ecx
cdq
idiv edi
push eax
push dword [ebp - 0x334]
push dword [ebp - 0x338]
push 0
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetWindowPos]
push dword [ebx + 4]
lea edi, [ebx + 0x788]
push esi
mov ecx, edi
call fcn.0040fb1c
push 0x100
xor esi, esi
lea eax, [ebp - 0x110]
push esi
push eax
call fcn.00497890
push dword [0x5388d8]
lea eax, [ebp - 0x110]
push str.GSOUND4TO8__s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
lea eax, [ebp - 0x110]
push eax
push 1
push esi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebx + 0xdd650], eax
test eax, eax
je 0x42af7f
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x42af7f
push 1
lea eax, [ebp - 0x324]
mov dword [ebp - 0x324], str._confirm
push eax
push str._mutex_tips
push str._tips
push dword [ebx + 4]
mov dword [ebp - 0x320], esi
mov dword [ebp - 0x31c], esi
call fcn.004053a9
add esp, 0x14
push esi
push 0xf060
push 0x112
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x42afcf
push esi
mov ecx, edi
call fcn.0040e14e
lea eax, [ebx + 0xdd634]
mov dword [ebp - 0x328], 0x4d1e55b2
push eax
push dword [ebx + 4]
mov dword [ebp - 0x324], 0x11cff16f
lea esi, [ebp - 0x328]
sub esp, 0x10
mov dword [ebp - 0x320], 0x1100cb88
mov edi, esp
mov dword [ebp - 0x31c], 0x30000011
mov ecx, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.00429f9b
lea ecx, [ebp - 0x368]
call fcn.0042909e
call fcn.00495b60
ret