Function at 0x40ece0
Capabilities:
Check if file exists
Check mutex on windows
Read file via mapping

Disassembly:
push 0xffffffffffffffff
push 0x473892
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push ebp
push esi
push edi
mov eax, dword [0x492bec]
xor eax, esp
push eax
lea eax, [esp + 0x4c]
mov dword fs:[0], eax
mov esi, ecx
lea ecx, [esp + 0x38]
call sub.mfc90.dll_Ordinal_580
lea ebx, [esp + 0x38]
mov dword [esp + 0x54], 0
call fcn.0040f200
xor ebp, ebp
cmp dword [esp + 0x40], ebp
jle 0x40ed3b
mov eax, dword [esp + 0x3c]
push eax
mov ecx, 0x494060
call dword [sym.imp.mfc90.dll_Ordinal_817]
call fcn.0040f2e0
push str.HaoZhuoDao_mutex
push 1
push ebp
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [esi + 0xac], eax
cmp eax, ebp
je 0x40edf3
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40ee1a
push 0x47ff5c
push ebp
push 4
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov ebx, eax
cmp ebx, ebp
je 0x40edf3
push 4
push ebp
push ebp
push 4
push ebx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov edi, eax
mov ecx, dword [edi]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x40edd4
mov edx, dword [edi]
push edx
call dword [sym.imp.USER32.dll_IsIconic]
mov ebp, dword [sym.imp.USER32.dll_ShowWindow]
test eax, eax
je 0x40edb7
mov eax, dword [edi]
push 9
push eax
call ebp
mov ecx, dword [edi]
push ecx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x40edcb
mov edx, dword [edi]
push 5
push edx
call ebp
mov eax, dword [edi]
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
call edi
mov ecx, dword [esi + 0xac]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov edx, dword [esi + 0xac]
push edx
call edi
lea ecx, [esp + 0x38]
mov dword [esp + 0x54], 0xffffffff
call sub.mfc90.dll_Ordinal_781
xor eax, eax
mov ecx, dword [esp + 0x4c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret
push ebp
call fcn.0046d6e2
test eax, eax
je 0x40edf3
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x24], 8
mov dword [esp + 0x28], 0xff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov ecx, esi
call sub.mfc90.dll_Ordinal_4197
push ebp
call sub.mfc90.dll_Ordinal_1098
push 8
call sub.mfc90.dll_Ordinal_798
add esp, 8
cmp eax, ebp
je 0x40ee65
mov dword [eax], vtable.CImpIDispatch.0
mov dword [eax + 4], ebp
jmp 0x40ee67
xor eax, eax
push 4
mov dword [esi + 0xb0], eax
call sub.mfc90.dll_Ordinal_799
cmp eax, ebp
je 0x40ee80
mov dword [eax], vtable.CCustomOccManager.0
jmp 0x40ee82
xor eax, eax
push eax
call sub.mfc90.dll_Ordinal_1098
add esp, 4
push 0x482bf0
mov ecx, esi
call sub.mfc90.dll_Ordinal_6462
push str.A0924406200E431B38DCF5B8
push str.YiTianxia
call fcn.004125d0
push ebp
push str.skin
call fcn.00413810
push 0xbf4
call sub.mfc90.dll_Ordinal_798
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x54], 1
cmp eax, ebp
je 0x40eed3
push eax
call fcn.004010c0
jmp 0x40eed5
xor eax, eax
mov byte [esp + 0x54], 0
push 0x47ee18
lea ecx, [esp + 0x18]
mov dword [esi + 0xa4], eax
mov dword [esi + 0x20], eax
call dword [sym.imp.mfc90.dll_Ordinal_310]
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x58], 2
call sub.HZDKernel.dll_public:_static_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char______cdecl_HZD::Kernel::Helper::CBaseHelper::BinPath_void_
push eax
lea edx, [esp + 0x20]
push edx
mov edi, str.hzdtestver
mov byte [esp + 0x60], 3
call fcn.00407810
mov eax, dword [eax]
add esp, 0xc
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
lea ecx, [esp + 0x18]
sete bl
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x54], 2
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x14]
test bl, bl
je 0x40ef4f
push 0x482c40
jmp 0x40ef54
push 0x482c54
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov edi, dword [esp + 0x14]
push 0x80
push 0xe
push 0x80
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
call sub.mfc90.dll_Ordinal_1108
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
mov ecx, dword [esi + 0x20]
mov ebx, dword [ecx]
push ebp
push ebp
push ebp
lea edx, [esp + 0x34]
push edx
push 0xcf0000
push edi
push eax
push ebp
push ebp
push ebp
call sub.mfc90.dll_Ordinal_1222
mov ecx, dword [esi + 0x20]
push eax
mov eax, dword [ebx + 0x60]
push ebp
call eax
test eax, eax
jne 0x40efbf
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90.dll_Ordinal_601]
jmp 0x40edf3
push 0x481214
mov ecx, 0x494060
call dword [sym.imp.mfc90.dll_Ordinal_1603]
mov ecx, dword [esi + 0x20]
test eax, eax
jne 0x40efde
push ebp
call sub.mfc90.dll_Ordinal_6584
jmp 0x40eff2
push 5
call sub.mfc90.dll_Ordinal_6584
mov esi, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x38]
mov dword [esp + 0x54], 0xffffffff
call sub.mfc90.dll_Ordinal_781
mov eax, 1
mov ecx, dword [esp + 0x4c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret