Function at 0x5703d0
Capabilities:
Get file attributes
Get file size
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x89c
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
xor edi, edi
test eax, eax
mov esi, ecx
je 0x57042d
cmp word [eax], di
je 0x57042d
push eax
lea eax, [esp + 0x49c]
push eax
call dword [0x5d2614]
add esp, 8
push 0x104
lea ecx, [esp + 0x49c]
push ecx
call sym.vidcap60.exe__SfAddSlashToPathName_8
mov ebx, dword [ebp + 8]
push ebx
call sym.vidcap60.exe__SfGetFileNamePtrW_4
push eax
lea edx, [esp + 0x49c]
push edx
call dword [0x5d24cc]
jmp 0x57044b
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
push ebx
push eax
mov ecx, esi
call fcn.0056a170
push eax
lea ecx, [esp + 0x49c]
push ecx
call dword [0x5d2614]
add esp, 8
cmp word [esp + 0x498], 0
je 0x57081a
cmp dword [esi + 0x24], 2
jne 0x5704a5
mov eax, dword [esi + 0x1094]
test al, 4
jne 0x5704a5
mov eax, dword [esi + 0x20]
test eax, eax
je 0x5704a5
lea edx, [esp + 0x498]
push edx
push esi
call sym.vidcap60.exe_public:_int___stdcall_CArchive2::IsEntryInArchive_unsigned_short_int_const__
test eax, eax
je 0x5704a5
lea eax, [esp + 0x498]
push eax
mov ecx, esi
call fcn.0056b220
dec eax
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x1c], eax
jne 0x57081a
mov edx, dword [esi + 0x2c]
xor eax, eax
mov ecx, 0x116
lea edi, [esp + 0x40]
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0x28]
xor edi, edi
push ebx
mov dword [esp + 0x44], 0xa034d55
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x4c], edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [esp + 0x74], eax
test byte [esi + 0x1094], 8
je 0x5704e7
and dword [esp + 0x74], 0xfffffffe
push edi
push edi
push 3
push edi
push 3
push SysReAllocString
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
mov dword [esp + 0x1c], ebx
je 0x5707fa
lea eax, [esp + 0x24]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0x70], eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x74], ecx
push eax
lea ecx, [esp + 0x38]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
je 0x5707cc
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x498]
test ecx, ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], eax
jne 0x570560
mov dword [esp + 0x78], edi
jmp 0x570575
lea edx, [esp + 0x498]
push edx
call dword [0x5d2620]
add esp, 4
mov dword [esp + 0x78], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
lea edx, [esp + 0x498]
mov dword [esp + 0x80], eax
push edx
lea eax, [esp + 0x8c]
push eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x8c], ecx
call dword [0x5d2614]
mov eax, dword [esi + 0xc]
add esp, 8
push edi
lea ecx, [esp + 0x14]
push ecx
push 0x40
lea edx, [esp + 0x4c]
push edx
mov word [esp + 0x2a0], di
mov edi, dword [sym.imp.KERNEL32.dll_WriteFile]
push eax
call edi
mov edx, dword [esi + 0x18]
mov ecx, dword [esp + 0x10]
add edx, ecx
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x1c]
adc edx, 0
test eax, eax
mov dword [esi + 0x1c], edx
je 0x57079d
push 0x104
lea edx, [esp + 0x8c]
push edx
lea eax, [esp + 0x6a8]
push eax
call dword [0x5d2618]
lea ecx, [esp + 0x6ac]
add esp, 0xc
test ecx, ecx
mov word [esp + 0x8a6], 0
je 0x570623
mov edx, ecx
push edx
call dword [0x5d2620]
add esp, 4
mov ecx, dword [esp + 0x78]
push 0
lea eax, [esp + 0x14]
push eax
lea edx, [ecx + ecx]
mov ecx, dword [esi + 0xc]
push edx
lea eax, [esp + 0x6ac]
push eax
push ecx
call edi
test eax, eax
je 0x57079d
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x18]
add eax, edx
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x28]
adc edx, 0
sub eax, 0
mov dword [esi + 0x1c], edx
je 0x570693
dec eax
je 0x570684
push ebx
mov dword [esp + 0x18], 0x80004001
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea eax, [esp + 0x40]
push eax
push ebx
mov ecx, esi
call fcn.0056b780
jmp 0x5706a0
lea ecx, [esp + 0x40]
push ecx
push ebx
mov ecx, esi
call fcn.0056b4c0
test eax, eax
mov dword [esp + 0x14], eax
jl 0x5707e6
mov ebx, dword [esp + 0x80]
mov ecx, dword [esi + 0x10a0]
mov edx, dword [esp + 0x84]
mov eax, dword [esi + 0x10a4]
add ecx, ebx
mov ebx, dword [sym.imp.KERNEL32.dll_SetFilePointer]
adc eax, edx
add ecx, 0x1c
adc eax, 0
mov edx, eax
push 0
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
push ecx
mov ecx, dword [esi + 0xc]
push ecx
mov dword [esp + 0x30], 0
sar edx, 0x1f
call ebx
mov ecx, dword [esi + 0xc]
push 0
lea edx, [esp + 0x14]
push edx
push 4
lea eax, [esp + 0x68]
push eax
push ecx
call edi
mov ecx, dword [esi + 0xc]
push 0
lea edx, [esp + 0x14]
push edx
push 4
lea eax, [esp + 0x6c]
push eax
push ecx
call edi
mov ecx, dword [esi + 0xc]
push 0
lea edx, [esp + 0x14]
push edx
push 8
lea eax, [esp + 0x70]
push eax
push ecx
call edi
mov ecx, dword [esi + 0x10a0]
mov edi, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x10a4]
add ecx, edi
adc eax, edx
mov edx, eax
push 0
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
push ecx
mov ecx, dword [esi + 0xc]
push ecx
sar edx, 0x1f
call ebx
mov ecx, dword [esi + 0x10]
lea edx, [esp + 0x20]
push edx
push 0xffffffffffffffff
push 0x458
lea eax, [esp + 0x4c]
push eax
push ecx
call sym.vidcap60.exe__SfList_AllocAndInsertItem_20
mov eax, dword [esi + 0x10ac]
mov ebx, dword [esp + 0x1c]
inc eax
push ebx
mov dword [esi + 0x10ac], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0
push str.AddFile
push 0xaaaaaaa9
mov ecx, esi
call fcn.0056a380
push ebx
mov dword [esp + 0x18], 0x8004e009
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push edi
push str.AddFile
push 0xaaaaaaab
mov ecx, esi
call fcn.0056a380
mov dword [esp + 0x14], 0x8004e00b
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push edi
push str.AddFile
push 0xaaaaaaa4
mov ecx, esi
call fcn.0056a380
mov eax, 0x8004e006
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc