Function at 0x4078b0
Capabilities:
Check for time delay via gettickcount
Check mutex on windows
Create directory

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5e066c
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x200
mov eax, dword [0x66a074]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x20c], ecx
cmp byte [0x6735fc], 0
jne 0x407912
push 0x674e68
mov byte [0x6735fc], 1
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x674e68
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x674e64]
test al, 1
jne 0x407957
or eax, 1
mov dword [0x674e5c], 0
mov dword [0x674e64], eax
xor eax, eax
push 0x6024a0
mov dword [0x674e60], 7
mov word [0x674e4c], ax
call fcn.005b797d
add esp, 4
cmp dword [0x674e5c], 0
jne 0x4079f3
lea ecx, [ebp - 0x1b0]
call fcn.004acbc0
push 5
push str.log_
lea ecx, [ebp - 0x1b0]
mov dword [ebp - 4], 0
call fcn.00409220
cmp dword [ebp - 0x19c], 8
lea eax, [ebp - 0x1b0]
push 0
cmovae eax, dword [ebp - 0x1b0]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
movups xmm0, xmmword [ebp - 0x1b0]
lea ecx, [ebp - 0x1b0]
movups xmm1, xmmword [0x674e4c]
movq xmm2, qword [0x674e5c]
movups xmmword [0x674e4c], xmm0
movq xmm0, qword [ebp - 0x1a0]
movq qword [0x674e5c], xmm0
movups xmmword [ebp - 0x1b0], xmm1
mov dword [ebp - 4], 0xffffffff
movq qword [ebp - 0x1a0], xmm2
call fcn.00408ff0
push 6
xor eax, eax
mov dword [ebp - 0x1d0], 0
push str.doctor
lea ecx, [ebp - 0x1e0]
mov dword [ebp - 0x1cc], 7
mov word [ebp - 0x1e0], ax
call fcn.00409060
push 0x80
lea eax, [ebp - 0x98]
mov dword [ebp - 4], 1
push 0
push eax
call fcn.005b9c20
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push str..PID__u
lea eax, [ebp - 0x98]
push 0x40
push eax
call fcn.00407800
lea ecx, [ebp - 0x98]
add esp, 0x10
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x407a65
sub ecx, edx
lea eax, [ebp - 0x98]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x1e0]
call fcn.00409220
lea eax, [ebp - 0x1e0]
mov edx, 0x674e4c
push eax
lea ecx, [ebp - 0x1f8]
call fcn.00409420
add esp, 4
push 4
push str..log
mov ecx, eax
mov byte [ebp - 4], 2
call fcn.00409220
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1c0], xmm0
movups xmmword [ebp - 0x1b0], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea ecx, [ebp - 0x1e0]
movq qword [ebp - 0x208], xmm0
movq qword [ebp - 0x1a0], xmm0
call fcn.00408ff0
movups xmm0, xmmword [ebp - 0x1c0]
xor eax, eax
mov dword [ebp - 0x1a0], 0
lea ecx, [ebp - 0x1b0]
mov dword [ebp - 0x19c], 7
movups xmmword [ebp - 0x1e0], xmm0
mov word [ebp - 0x1b0], ax
movq xmm0, qword [ebp - 0x208]
movq qword [ebp - 0x1d0], xmm0
call fcn.00408ff0
lea ecx, [ebp - 0x1f8]
mov byte [ebp - 4], 1
call fcn.00408ff0
cmp dword [0x673608], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x1fc], 0
jne 0x407c24
mov eax, dword [0x674e64]
test al, 2
jne 0x407b93
push str.Doctor_2345Explorer.time.lock
push 0
or eax, 2
push 0
mov dword [0x674e64], eax
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x674e80], eax
mov eax, dword [0x674e64]
mov ecx, dword [0x674e80]
test ecx, ecx
je 0x407bab
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x674e64]
test al, 4
jne 0x407bd3
push str.Helper_2345Explorer.time.shm
push 4
push 0
push 4
push 0
or eax, 4
push 0xffffffffffffffff
mov dword [0x674e64], eax
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [0x674e48], eax
jmp 0x407bd8
mov eax, dword [0x674e48]
test eax, eax
je 0x407c13
push 0
push 0
push 0
push 0xf001f
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov esi, eax
test esi, esi
je 0x407c13
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x407c05
call edi
mov dword [esi], eax
mov eax, dword [esi]
push esi
mov dword [0x673608], eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov ecx, dword [0x674e80]
test ecx, ecx
je 0x407c24
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp dword [ebp - 0x1cc], 8
lea eax, [ebp - 0x1e0]
push str.a_ccsUTF_8
cmovae eax, dword [ebp - 0x1e0]
push eax
lea eax, [ebp - 0x1fc]
push eax
call fcn.005bfd63
add esp, 0xc
cmp dword [ebp - 0x1fc], 0
je 0x407dec
call edi
mov esi, eax
mov eax, 0x31b5d43b
sub esi, dword [0x673608]
mul esi
mov eax, 0x95217cb1
shr edx, 0x18
imul ecx, edx, 0xfad9a400
push 0x100
push 0
add esi, ecx
mul esi
mov eax, edx
shr eax, 0x15
mov dword [ebp - 0x204], eax
imul eax, eax, 0xffc91180
add esi, eax
mov eax, 0x45e7b273
mul esi
mov edi, edx
shr edi, 0xe
imul eax, edi, 0xffff15a0
add esi, eax
mov eax, 0x10624dd3
mul esi
mov dword [ebp - 0x200], esi
mov esi, edx
shr esi, 6
imul eax, esi, 0x3e8
sub dword [ebp - 0x200], eax
lea eax, [ebp - 0x198]
push eax
call fcn.005b9c20
add esp, 0xc
lea eax, [ebp - 0x198]
push dword [ebp - 0x200]
push esi
push edi
push dword [ebp - 0x204]
push str._02u:_02u:_02u._03u
push 0x80
push eax
call fcn.00407800
xor eax, eax
mov dword [ebp - 0x1b8], 0
add esp, 0x1c
mov dword [ebp - 0x1b4], 7
mov word [ebp - 0x1c8], ax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c8]
mov byte [ebp - 0x204], al
push dword [ebp - 0x204]
push 0x100
call fcn.00409680
lea ecx, [ebp - 0x198]
mov dword [ebp - 0x1b8], 0
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x407d50
sub ecx, edx
lea eax, [ebp - 0x198]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x1c8]
call fcn.00409060
mov edx, dword [ebp - 0x20c]
test edx, edx
je 0x407d9d
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x407d81
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x1c8]
call fcn.00409220
cmp dword [ebp - 0x1b4], 8
lea eax, [ebp - 0x1c8]
cmovae eax, dword [ebp - 0x1c8]
push eax
push 0x6139f0
push dword [ebp - 0x1fc]
call fcn.00407770
add esp, 0xc
push dword [ebp - 0x1fc]
call fcn.005bfc32
add esp, 4
push dword [ebp - 0x1fc]
call fcn.005bfe20
add esp, 4
lea ecx, [ebp - 0x1c8]
call fcn.00408ff0
push 0x674e68
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp - 0x1e0]
call fcn.00408ff0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005b75ab
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret