Function at 0x458a00
Capabilities:
Check mutex on windows

Disassembly:
push 0xffffffffffffffff
push 0x4ec2bc
mov eax, dword fs:[0]
push eax
mov eax, 0x11c0
call fcn.004de210
mov eax, dword [0x52a6ec]
xor eax, esp
mov dword [esp + 0x11b8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x52a6ec]
xor eax, esp
push eax
lea eax, [esp + 0x11d4]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x11e4]
mov esi, edx
mov edi, ecx
mov dword [esp + 0x20], esi
test esi, esi
je 0x458ae4
call fcn.004062d0
push str.A946A6A9_917E_4949_B9BC_6BADA8C7FD63
push 0
xor bl, bl
push 0
mov byte [esp + 0x30], bl
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, eax
push esi
mov dword [esp + 0x2c], esi
call fcn.0045c080
add esp, 4
test al, al
je 0x458a98
push 0x1388
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
sete bl
mov byte [esp + 0x24], bl
mov dword [esp + 0x11dc], 0
test bl, bl
je 0x458add
mov dword [esp + 0x1c], VariantClear
mov byte [esp + 0x11dc], 1
call fcn.0045d9a0
test al, al
je 0x458aeb
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x458ad6
cmp eax, 0x80000001
je 0x458ad6
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
jmp 0x458cea
lea esi, [esp + 0x14]
call fcn.0044bc50
push str.pinyin
push 0x50bc90
push str._s_s
mov eax, esi
mov byte [esp + 0x11e8], 2
call fcn.0045e200
add esp, 0xc
test edi, edi
je 0x458b2e
push edi
push str.brand
push 0x50ade0
mov eax, esi
call fcn.0045ef40
add esp, 0xc
test ebp, ebp
je 0x458b49
push ebp
push 0x50adc4
push 0x50ade0
lea eax, [esp + 0x20]
call fcn.0045ef40
add esp, 0xc
xor eax, eax
lea ecx, [esp + 0x1c4]
mov word [esp + 0x1c4], ax
call fcn.0045acf0
mov bl, al
test bl, bl
je 0x458b80
lea ecx, [esp + 0x1c4]
push ecx
push 0x50be34
lea eax, [esp + 0x1c]
call fcn.0045ef40
add esp, 8
jmp 0x458bc3
xor edi, edi
lea esi, [edi + 1]
xor edx, edx
lea eax, [esp + 0x13c]
mov word [esp + 0x13c], dx
push eax
mov edx, esi
call fcn.0045ae20
add esp, 4
test al, al
je 0x458bb5
cmp word [esp + 0x13c], 0
je 0x458bb5
mov dword [esp + edi*4 + 0x2c], esi
inc edi
inc esi
cmp esi, 0x44
jl 0x458b85
mov dword [esp + edi*4 + 0x2c], 0
xor ecx, ecx
mov word [esp + 0x1c4], cx
mov ecx, 0x52c278
test bl, bl
jne 0x458bda
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x1c4]
call fcn.0045b360
test al, al
je 0x458c03
lea edx, [esp + 0x1c4]
push edx
push 0x50be34
lea eax, [esp + 0x1c]
call fcn.0045ef40
add esp, 8
test bl, bl
je 0x458c53
lea esi, [esp + 0x18]
call fcn.0044bc50
mov eax, esi
push eax
mov byte [esp + 0x11e0], 3
call fcn.0045d3d0
add esp, 4
test al, al
je 0x458c42
mov ecx, dword [esp + 0x18]
push ecx
push 0x50ad50
push 0x50ade0
lea eax, [esp + 0x20]
call fcn.0045ef40
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x11dc], 2
call fcn.0045ef50
xor edx, edx
lea edi, [esp + 0x1c4]
mov word [esp + 0x1c4], dx
call fcn.004594b0
test al, al
je 0x458c81
mov eax, edi
push eax
push 0x50be34
lea eax, [esp + 0x1c]
call fcn.0045ef40
add esp, 8
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push esi
push str._tools_pso_ping
push str._s__s
call fcn.0045e200
lea eax, [esi - 0x10]
add esp, 0xc
mov byte [esp + 0x11dc], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458cc0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x458cd6
cmp eax, 0x80000001
je 0x458cd6
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [esp + 0x28]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
mov ecx, dword [esp + 0x11d4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x11b8]
xor ecx, esp
call fcn.004c9392
add esp, 0x11cc
ret