Function at 0x4a1320
Capabilities:
Create directory
Create thread
Delete file
Get common file path
Get file size
Move file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x274
mov eax, dword [0x4c75d0]
xor eax, esp
mov dword [esp + 0x270], eax
mov eax, dword [0x4ed5ec]
push ebx
push esi
push edi
cmp eax, 4
jne 0x4a1509
mov eax, dword [0x4ed5e8]
xor ebx, ebx
push ebx
push eax
mov byte [esp + 0x70], bl
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, 1
add eax, esi
mov edi, 0x4ed598
mov dword [0x4ed5a0], eax
call fcn.00438c60
test eax, eax
jne 0x4a1384
mov dword [0x4ed5f4], esi
mov dword [0x4ed5ec], esi
call fcn.004a10e0
push str.Recording_stopped
push 0x4ede88
call fcn.00476e30
push 0x58
lea ecx, [esp + 0x1c]
push ebx
push ecx
call fcn.0042e03c
mov edx, dword [0x4ee004]
add esp, 0x14
lea ecx, [esp + 0x10]
lea eax, [esp + 0x68]
mov esi, 0x104
push ecx
mov dword [esp + 0x14], 0x58
mov dword [esp + 0x50], 0x4b54bc
mov dword [esp + 0x40], ebx
mov dword [esp + 0x18], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x20], str.Datalog__XDL__Files__.xdl_
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x44], str.Select_Create_file_to_save...
mov dword [esp + 0x34], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x48], 0x2002
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameA]
test eax, eax
je 0x4a1577
lea edx, [esp + 0x170]
push edx
push ebx
push ebx
push 5
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendA]
push str.TunerPro_Files_
lea eax, [esp + 0x174]
push eax
call edi
push ebx
lea ecx, [esp + 0x174]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push str.temp.xdl
lea edx, [esp + 0x174]
push edx
call edi
push 3
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x178]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
jne 0x4a14a6
mov edx, dword [0x4ee004]
push 0x10
push str.Cannot_overwrite
push str.Log_save_failed._Log_backup_saved_in_install_directory_as__temp.xdl_
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esp + 0x6c]
push eax
push str.Cannot_overwrite_existing_log:__s__error_0x_X
push 0x4ede88
call fcn.00476e30
add esp, 0x10
jmp 0x4a14e0
lea edx, [esp + 0x68]
mov eax, esi
mov ecx, 0x4ed9d5
call fcn.004a0810
push 0x4b
call dword [sym.imp.KERNEL32.dll_Sleep]
push str.temp.xdl
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [esp + 0x68]
push ecx
push str.Log_saved_to__s
push 0x4ede88
call fcn.00476e30
add esp, 0xc
mov edx, dword [sym.imp.ScannerProModule.dll_unsigned_long_int_SPC_LOG_TB_SEEK_BAR]
mov eax, dword [edx]
mov ecx, dword [0x4ed6c0]
push ebx
push 1
push 0x405
push eax
push ecx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
lea ecx, [esp + 0x68]
call fcn.004a1150
jmp 0x4a1577
cmp eax, 3
je 0x4a1517
cmp dword [0x4ed6f8], 4
jne 0x4a1577
xor ebx, ebx
lea edx, [esp + 0xc]
push edx
push ebx
push 2
push 0x4a0250
push ebx
push ebx
mov dword [esp + 0x24], ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov eax, dword [0x4ed6c4]
push ebx
push ebx
push 0x852d
push eax
mov dword [0x4ed6f8], ebx
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, dword [0x4ed6a8]
push ebx
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
mov edx, dword [0x4ed6bc]
push ebx
push edx
call dword [sym.imp.ScannerProModule.dll_unsigned_int___cdecl_SPSetCmdSenderToolbarStatus_struct_HWND_____enum_SPSTATUS_]
add esp, 8
push 1
push ebx
mov eax, 0x4ed598
call fcn.004394a0
mov eax, dword [0x4ed6f8]
push 0x4ed598
push eax
call dword [sym.imp.ScannerProModule.dll_void___cdecl_SPUpdateTransportButtonState_enum_SPSTATUS__class_DataLogEngine__]
mov esi, dword [0x4ee00c]
push 8
xor ecx, ecx
call fcn.00485600
mov ecx, dword [esp + 0x288]
add esp, 0xc
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0042dbe7
mov esp, ebp
pop ebp
ret