Function at 0x409e4f
Capabilities:
Copy file
Move file
Read .ini file
Write file on windows

Disassembly:
mov eax, 0x423007
call fcn.00414c98
mov eax, 0x10c4
call fcn.00414e00
mov eax, dword [0x431d24]
push ebx
xor eax, ebp
push esi
mov dword [ebp - 0x10], eax
push edi
lea eax, [ebp - 0x10d0]
push eax
mov esi, str.C:TSLOG_CONFIGTSLOG.ini
push esi
mov ebx, ecx
call fcn.00415705
pop ecx
xor edi, edi
test eax, eax
pop ecx
je 0x409eff
lea eax, [ebp - 0x10d0]
push eax
push str.C:TSLOG_CONFIGTSLOG.txt
call fcn.00415705
test eax, eax
pop ecx
pop ecx
je 0x409ef3
lea eax, [ebp - 0x10d0]
push eax
push esi
call fcn.00415705
test eax, eax
pop ecx
pop ecx
je 0x409ee8
lea eax, [ebp - 0x10d0]
push eax
push str.C:TSLOG_CONFIGTSLOG.txt
call fcn.00415705
test eax, eax
pop ecx
pop ecx
je 0x409edc
push edi
mov ecx, ebx
call fcn.0040835f
xor eax, eax
jmp 0x40a7eb
push esi
push str.C:TSLOG_CONFIGTSLOG.txt
call dword [sym.imp.KERNEL32.dll_MoveFileW]
push edi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
jmp 0x409eff
push esi
push str.C:TSLOG_CONFIGTSLOG.txt
call dword [sym.imp.KERNEL32.dll_MoveFileW]
cmp dword [ebp - 0x10bc], edi
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0x1088], edi
mov dword [ebp - 0x1090], eax
jne 0x409f72
push edi
push edi
push 4
push edi
push 1
push 0x40000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x1084], eax
je 0x409f72
push edi
lea eax, [ebp - 0x108c]
mov dword [ebp - 0x108c], edi
push eax
mov edi, str.__Output__r_n_DebugView__________________ON______ON
push edi
call fcn.00413f00
pop ecx
push eax
push edi
push dword [ebp - 0x1084]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp - 0x1084]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x1088], 1
and word [ebp - 0x1010], 0
xor eax, eax
mov ecx, 0x3ff
lea edi, [ebp - 0x100e]
rep stosd dword es:[edi], eax
push esi
push 0x800
stosw word es:[edi], ax
lea eax, [ebp - 0x1010]
push eax
push 0x426f2c
push 0x426f18
mov edi, 0x426654
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x1010]
push 0x426f2c
push eax
call fcn.0041550a
test eax, eax
pop ecx
pop ecx
je 0x40a010
lea eax, [ebp - 0x1010]
push 0x426f14
push eax
call fcn.0041550a
test eax, eax
pop ecx
pop ecx
je 0x40a010
lea eax, [ebp - 0x1010]
push 0x426674
push eax
call fcn.0041550a
test eax, eax
pop ecx
pop ecx
je 0x40a00a
lea eax, [ebp - 0x1010]
push 0x426f10
push eax
call fcn.0041550a
test eax, eax
pop ecx
pop ecx
jne 0x40a017
and dword [ebx + 0x28], 0
jmp 0x40a017
mov dword [ebx + 0x28], 1
cmp dword [ebp - 0x1088], 0
je 0x40a03e
cmp dword [ebx + 0x28], 0
mov eax, 0x426f2c
jne 0x40a030
mov eax, 0x426674
push esi
push eax
push 0x426f18
push edi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push esi
push 0x800
lea eax, [ebp - 0x1010]
push eax
push 0x426f2c
push str.FileLog
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x1010]
push 0x426f2c
push eax
call fcn.0041550a
test eax, eax
pop ecx
pop ecx
je 0x40a0be
lea eax, [ebp - 0x1010]
push 0x426f14
push eax
call fcn.0041550a
test eax, eax
pop ecx
pop ecx
je 0x40a0be
lea eax, [ebp - 0x1010]
push 0x426674
push eax
call fcn.0041550a
test eax, eax
pop ecx
pop ecx
je 0x40a0b8
lea eax, [ebp - 0x1010]
push 0x426f10
push eax
call fcn.0041550a
test eax, eax
pop ecx
pop ecx
jne 0x40a0c5
and dword [ebx + 0x2c], 0
jmp 0x40a0c5
mov dword [ebx + 0x2c], 1
cmp dword [ebp - 0x1088], 0
je 0x40a0ec
cmp dword [ebx + 0x2c], 0
mov eax, 0x426f2c
jne 0x40a0de
mov eax, 0x426674
push esi
push eax
push str.FileLog
push edi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push esi
push 0x800
lea eax, [ebp - 0x1010]
push eax
push str.TRACE
push str.Level
mov edi, str.Common
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x1010]
push str.TRACE
push eax
call fcn.0041550a
test eax, eax
pop ecx
pop ecx
jne 0x40a12e
and dword [ebx + 0x30], eax
jmp 0x40a1cc
lea eax, [ebp - 0x1010]
push str.DEBUG
push eax
call fcn.0041550a
test eax, eax
pop ecx
pop ecx
jne 0x40a14e
mov dword [ebx + 0x30], 1
jmp 0x40a1cc
lea eax, [ebp - 0x1010]
push str.INFO
push eax
call fcn.0041550a
test eax, eax
pop ecx
pop ecx
jne 0x40a16e
mov dword [ebx + 0x30], 2
jmp 0x40a1cc
lea eax, [ebp - 0x1010]
push str.WARN
push eax
call fcn.0041550a
test eax, eax
pop ecx
pop ecx
jne 0x40a18e
mov dword [ebx + 0x30], 3
jmp 0x40a1cc
lea eax, [ebp - 0x1010]
push str.ERROR
push eax
call fcn.0041550a
test eax, eax
pop ecx
pop ecx
jne 0x40a1ae
mov dword [ebx + 0x30], 4
jmp 0x40a1cc
lea eax, [ebp - 0x1010]
push str.FATAL
push eax
call fcn.0041550a
test eax, eax
pop ecx
pop ecx
jne 0x40a1cc
mov dword [ebx + 0x30], 5
cmp dword [ebp - 0x1088], 0
je 0x40a229
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x40a216
cmp eax, 1
jne 0x40a1e8
mov eax, str.DEBUG
jmp 0x40a21b
cmp eax, 2
jne 0x40a1f4
mov eax, str.INFO
jmp 0x40a21b
cmp eax, 3
jne 0x40a200
mov eax, str.WARN
jmp 0x40a21b
cmp eax, 4
jne 0x40a20c
mov eax, str.ERROR
jmp 0x40a21b
cmp eax, 5
mov eax, str.FATAL
je 0x40a21b
mov eax, str.TRACE
push esi
push eax
push str.Level
push edi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push 0
lea ecx, [ebp - 0x1080]
mov dword [ebp - 0x1068], 7
call fcn.0040357c
and dword [ebp - 4], 0
push 0
lea ecx, [ebp - 0x1048]
mov dword [ebp - 0x1030], 7
call fcn.0040357c
mov byte [ebp - 4], 1
lea ecx, [ebx + 0x34]
call fcn.004014c6
push esi
push 0x800
lea eax, [ebp - 0x1010]
push eax
push 0x426650
push str.Include
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x1010]
push eax
lea ecx, [ebp - 0x1080]
call fcn.0040595b
push 0x426e94
lea eax, [ebp - 0x1010]
push eax
jmp 0x40a2d0
push 0x426650
push dword [ebp - 0x1084]
call fcn.0041550a
test eax, eax
pop ecx
pop ecx
lea ecx, [ebx + 0x34]
je 0x40a2e3
push dword [ebp - 0x1084]
call fcn.004080ef
push 0x426e94
push 0
call fcn.00415465
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x1084], eax
jne 0x40a2a5
jmp 0x40a311
call fcn.004014c6
push dword [ebp - 0x1084]
lea ecx, [ebx + 0x34]
call fcn.004080ef
cmp dword [ebp - 0x1088], 0
je 0x40a311
push esi
push 0x426650
push str.Include
push edi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebx + 0x88]
call fcn.004014c6
push esi
push 0x800
lea eax, [ebp - 0x1010]
push eax
push 0x4263c4
push 0x426e84
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x1010]
push eax
lea ecx, [ebp - 0x1048]
call fcn.0040595b
lea eax, [ebp - 0x1010]
push 0x426e80
push eax
call fcn.00415465
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x1084], eax
jne 0x40a385
cmp dword [ebp - 0x1088], eax
je 0x40a3cf
push esi
push 0x4263c4
push 0x426e84
push edi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
jmp 0x40a3cf
mov edi, dword [ebp - 0x1084]
push 0x426650
push edi
call fcn.0041550a
test eax, eax
pop ecx
pop ecx
lea ecx, [ebx + 0x88]
je 0x40a3be
push edi
call fcn.004080ef
push 0x426e94
push 0
call fcn.00415465
mov edi, eax
test edi, edi
pop ecx
pop ecx
jne 0x40a38b
jmp 0x40a3cf
call fcn.004014c6
push edi
lea ecx, [ebx + 0x88]
call fcn.004080ef
push 0
lea ecx, [ebp - 0x102c]
mov dword [ebp - 0x1014], 0xf
call fcn.00403dd8
mov byte [ebp - 4], 2
push esi
lea ecx, [ebp - 0x10ac]
call fcn.00405bd2
mov byte [ebp - 4], 3
lea eax, [ebp - 0x102c]
push eax
lea eax, [ebp - 0x10ac]
push eax
call fcn.004067f0
pop ecx
pop ecx
mov byte [ebp - 4], 2
push 0
push 1
lea ecx, [ebp - 0x10ac]
call fcn.00403d21
cmp dword [ebp - 0x1014], 0x10
mov edi, dword [ebp - 0x1028]
jae 0x40a437
lea edi, [ebp - 0x1028]
push 0
lea ecx, [ebp - 0x1064]
mov dword [ebp - 0x1084], edi
mov dword [ebp - 0x104c], 7
call fcn.0040357c
mov byte [ebp - 4], 4
lea eax, [ebx + 0xf8]
push eax
lea ecx, [ebp - 0x10ac]
call fcn.00405b8f
mov byte [ebp - 4], 5
lea eax, [ebp - 0x1064]
push eax
lea eax, [ebp - 0x10ac]
push eax
call fcn.004068d4
pop ecx
pop ecx
mov byte [ebp - 4], 4
push 0
push 1
lea ecx, [ebp - 0x10ac]
call fcn.0040438e
cmp dword [ebp - 0x104c], 8
mov eax, dword [ebp - 0x1060]
jae 0x40a4ab
lea eax, [ebp - 0x1060]
mov dword [ebp - 0x108c], eax
xor eax, eax
cmp dword [ebx + 0x2c], eax
je 0x40a6a7
cmp dword [ebp - 0x1090], eax
je 0x40a4d0
cmp dword [ebx + 0x23c], eax
jne 0x40a56a
push edi
mov edi, 0x104
push edi
lea eax, [ebx + 0xf8]
push eax
push str.C:TSLOG_
push str.LogFilePath
push str.FileLogOption
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebx + 0xf8]
push eax
call fcn.00413f00
test eax, eax
pop ecx
je 0x40a515
lea eax, [ebx + 0xf8]
push eax
call fcn.00413f00
cmp eax, edi
pop ecx
jb 0x40a52a
push edi
lea eax, [ebx + 0xf8]
push str.C:TSLOG_
push eax
call fcn.004150f0
add esp, 0xc
lea eax, [ebx + 0xf8]
push eax
call fcn.00413f00
cmp byte [eax + ebx + 0xf7], 0x5c
pop ecx
je 0x40a556
push edi
lea eax, [ebx + 0xf8]
push 0x426e60
push eax
call fcn.00415330
add esp, 0xc
or dword [0x432ecc], 0xffffffff
cmp dword [ebp + 8], 0
jne 0x40a56a
mov ecx, ebx
call fcn.004069d5
push esi
push 0x5000
push str.MaxLogFileSize
mov edi, 0x426e24
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 1
mov dword [ebx + 0xdc], eax
jb 0x40a593
cmp eax, 0x1f4000
jbe 0x40a5af
push esi
push str.20480
push str.MaxLogFileSize
push edi
mov dword [ebx + 0xdc], 0x5000
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push esi
push 0x14
push str.MaxLogFileCnt
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 1
mov dword [ebx + 0xe0], eax
jl 0x40a5d0
cmp eax, 0x3e8
jle 0x40a5ec
push esi
push 0x426df4
push str.MaxLogFileCnt
push edi
mov dword [ebx + 0xe0], 0x14
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push esi
push 0xa
push str.MaxCountOfHistroyProcess
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 0xffffffff
mov dword [ebx + 0xe4], eax
jl 0x40a60b
cmp eax, 0x64
jle 0x40a627
push esi
push 0x426db8
push str.MaxCountOfHistroyProcess
push edi
mov dword [ebx + 0xe4], 0xa
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [ebp - 0x1088], 0
je 0x40a6c5
push dword [ebp - 0x1084]
lea eax, [ebx + 0xf8]
push eax
push str.LogFilePath
push str.FileLogOption
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
cmp dword [ebx + 0xdc], 0x5000
jne 0x40a66f
push esi
push str.20480
push str.MaxLogFileSize
push edi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [ebx + 0xe0], 0x14
jne 0x40a68a
push esi
push 0x426df4
push str.MaxLogFileCnt
push edi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [ebx + 0xe4], 0xa
jne 0x40a6c5
push esi
push 0x426db8
push str.MaxCountOfHistroyProcess
push edi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
jmp 0x40a6c5
lea edi, [ebx + 0xe8]
mov eax, dword [edi]
cmp eax, 0xffffffff
je 0x40a6c5
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [edi], 0xffffffff
and dword [ebx + 0xf4], 0
xor ecx, ecx
cmp dword [ebp + 8], ecx
jne 0x40a7a0
mov eax, dword [ebx + 0x30]
cmp eax, ecx
je 0x40a711
cmp eax, 1
jne 0x40a6e3
mov edi, str.DEBUG
jmp 0x40a716
cmp eax, 2
jne 0x40a6ef
mov edi, str.INFO
jmp 0x40a716
cmp eax, 3
jne 0x40a6fb
mov edi, str.WARN
jmp 0x40a716
cmp eax, 4
jne 0x40a707
mov edi, str.ERROR
jmp 0x40a716
cmp eax, 5
mov edi, str.FATAL
je 0x40a716
mov edi, str.TRACE
cmp dword [ebx + 0x2c], ecx
mov dword [ebp - 0x1084], 0x426f2c
jne 0x40a72f
mov dword [ebp - 0x1084], 0x426674
cmp dword [ebx + 0x28], ecx
mov edx, 0x426f2c
jne 0x40a73e
mov edx, 0x426674
cmp dword [ebp - 0x1030], 8
mov ecx, dword [ebp - 0x1044]
jae 0x40a753
lea ecx, [ebp - 0x1044]
cmp dword [ebp - 0x1068], 8
mov eax, dword [ebp - 0x107c]
jae 0x40a768
lea eax, [ebp - 0x107c]
push dword [ebx + 0xe4]
push dword [ebx + 0xe0]
push dword [ebx + 0xdc]
push dword [ebp - 0x108c]
push ecx
push eax
push edi
push dword [ebp - 0x1084]
push edx
push esi
push str.TSLog_Config_File_:__s_:__r_n00000000_t00:00:00.000_t_0000___Output__r_n00000000_t00:00:00.000_t_0000__DebugView_s_r_n00000000_t00:00:00.000_t_0000__FileLog_s_r_n00000000_t00:00:00.000_t_0000___Common__r_n00000000_t00:00:00.000_t_0000__Level_s_r_n00000000_t00:00:00.000_t_0000__Include_s_r_n00000000_t00:00:00.000_t_0000__Exclude_s_r_n00000000_t00:00:00.000_t_0000___FileLogOption__r_n00000000_t00:00:00.000_t_0000__LogFilePath_s_r_n00000000_t00:00:00.000_t_0000__MaxLogFileSize_d_r_n00000000_t00:00:00.000_t_0000__MaxLogFileCnt_d_r_n00000000_t00:00:00.000_t_0000__MaxCountOfHistroyProcess_d_r_n
push ebx
call fcn.0040b256
add esp, 0x30
mov ecx, ebx
call fcn.00409a46
mov byte [ebp - 4], 2
xor edi, edi
xor esi, esi
push edi
inc esi
push esi
lea ecx, [ebp - 0x1064]
call fcn.00403d21
mov byte [ebp - 4], 1
push edi
push esi
lea ecx, [ebp - 0x102c]
call fcn.0040438e
mov byte [ebp - 4], 0
push edi
push esi
lea ecx, [ebp - 0x1048]
call fcn.00403d21
or dword [ebp - 4], 0xffffffff
push edi
push esi
lea ecx, [ebp - 0x1080]
call fcn.00403d21
mov eax, esi
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop esi
xor ecx, ebp
pop ebx
call fcn.0041428f
leave
ret 4