Function at 0x45ebb0
Capabilities:
Check for time delay via queryperformancecounter
Print debug messages
Write file on windows

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x46f84b
push eax
mov al, byte [0x4d769c]
mov dword fs:[0], esp
sub esp, 0xb2c
push ebx
xor ebx, ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
cmp al, bl
push edi
jne 0x45ed06
push 0x103
push 0x4d78b0
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x5c
push 0x4d78b0
call dword [sym.imp.MSVCRT.dll__mbsrchr]
mov byte [eax], bl
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x3d]
mov byte [esp + 0x3c], bl
add esp, 8
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x4d78b0
push str._slog.cfg
lea eax, [esp + 0x3c]
push 0xff
push eax
call dword [sym.imp.MSVCRT.dll__snprintf]
add esp, 0x10
lea ecx, [esp + 0xc]
call fcn.004153d0
lea ecx, [esp + 0x34]
mov dword [esp + 0xb40], ebx
push ecx
lea ecx, [esp + 0x10]
call fcn.004153f0
cmp eax, ebx
je 0x45ec72
lea ecx, [esp + 0xc]
mov dword [esp + 0xb40], 0xffffffff
call fcn.00415540
jmp 0x45eea7
push ebx
push 0x4d769d
push str.LogSwitch
push str.LogCfg
lea ecx, [esp + 0x1c]
call fcn.00415560
push 1
push 0x4d769e
push str.LogScreen
push str.LogCfg
lea ecx, [esp + 0x1c]
call fcn.00415560
push str..ClientLog_
push 0x200
push 0x4d76a0
push str.LogPath
push str.LogCfg
lea ecx, [esp + 0x20]
call fcn.004155e0
lea ecx, [esp + 0xc]
call fcn.004154f0
lea ecx, [esp + 0xc]
mov byte [0x4d769c], 1
call fcn.004154f0
push 0x4d78a0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
push 0x4d78a8
call esi
lea ecx, [esp + 0xc]
mov dword [esp + 0xb40], 0xffffffff
call fcn.00415540
cmp byte [0x4d769d], bl
je 0x45eea7
push 0x4d79b8
call esi
mov edx, dword [0x4d79b8]
mov esi, dword [0x4d78a8]
mov eax, dword [0x4d79bc]
mov ecx, dword [0x4d78ac]
sub edx, esi
push ebx
sbb eax, ecx
push 0x3e8
push eax
push edx
call fcn.004639e0
mov ecx, dword [0x4d78a4]
push ecx
mov ecx, dword [0x4d78a0]
push ecx
push edx
push eax
call fcn.00463930
mov esi, eax
mov ecx, 0xff
xor eax, eax
lea edi, [esp + 0x739]
mov byte [esp + 0x738], bl
mov byte [esp + 0x138], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0xff
xor eax, eax
lea edi, [esp + 0x139]
mov edx, dword [esp + 0xb4c]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0xb48]
push edx
push eax
lea ecx, [esp + 0x740]
push 0x400
push ecx
call dword [sym.imp.MSVCRT.dll__vsnprintf]
add esp, 0x10
lea edx, [esp + 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov ecx, dword [esp + 0x2e]
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x738]
and ecx, 0xffff
push eax
mov eax, dword [esp + 0x2e]
push esi
push ecx
mov ecx, dword [esp + 0x34]
and edx, 0xffff
and eax, 0xffff
push edx
mov edx, dword [esp + 0x36]
and ecx, 0xffff
push eax
mov eax, dword [esp + 0x36]
mov esi, dword [sym.imp.MSVCRT.dll_sprintf]
push ecx
mov ecx, dword [esp + 0x38]
and edx, 0xffff
and eax, 0xffff
push edx
and ecx, 0xffff
push eax
push ecx
lea edx, [esp + 0x15c]
push str._ddz__d__d__d__d:_d:_d:_d__d_:_s_n
push edx
call esi
mov eax, dword [0x4a9384]
add esp, 0x2c
push eax
push 0x4d76a0
push 0x4d78b0
lea ecx, [esp + 0x544]
push str._s_s_d.txt
push ecx
call esi
lea edx, [esp + 0x54c]
push 0x486758
push edx
call dword [sym.imp.MSVCRT.dll_fopen]
mov esi, eax
add esp, 0x1c
cmp esi, ebx
je 0x45ee91
lea edi, [esp + 0x138]
or ecx, 0xffffffff
xor eax, eax
push esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x13c]
push ecx
push 1
push eax
call dword [sym.imp.MSVCRT.dll_fwrite]
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 0x14
cmp byte [0x4d769e], bl
je 0x45eea7
lea ecx, [esp + 0x138]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [esp + 0xb38]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0xb38
ret