Function at 0x57bc30
Capabilities:
Copy file
Delete file
Get common file path
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d2f83
mov eax, dword fs:[0]
push eax
sub esp, 0xa4
push ebx
push esi
push edi
mov eax, dword [0x638fe4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x20], 0x644170
mov byte [ebp - 0x11], 0
mov dword [ebp - 4], 0
call fcn.00418413
mov ecx, eax
test ecx, ecx
jne 0x57bc85
push 0x80004005
call fcn.00402650
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x57bc9a
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x57bc9c
call edx
lea esi, [eax + 0x10]
mov dword [ebp - 0x18], esi
mov byte [ebp - 4], 1
mov edi, 1
mov eax, dword [esi - 8]
mov ecx, edi
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x57bccc
push 0x104
lea ecx, [ebp - 0x18]
call fcn.00402cf0
mov esi, dword [ebp - 0x18]
push esi
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push dword [esi - 8]
push esi
call fcn.0054c667
add esp, 8
test eax, eax
js 0x57c107
cmp eax, dword [esi - 8]
jg 0x57c107
mov dword [esi - 0xc], eax
xor ecx, ecx
mov word [esi + eax*2], cx
mov eax, dword [ebp + 0x14]
push dword [eax]
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
sub edi, dword [esi - 4]
mov ebx, eax
mov eax, dword [esi - 8]
sub eax, 0x104
or eax, edi
jge 0x57bd2a
push 0x104
lea ecx, [ebp - 0x18]
call fcn.00402cf0
mov esi, dword [ebp - 0x18]
push ebx
push esi
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push dword [esi - 8]
push esi
call fcn.0054c667
add esp, 8
test eax, eax
js 0x57c107
cmp eax, dword [esi - 8]
jg 0x57c107
xor ecx, ecx
mov dword [esi - 0xc], eax
push ecx
mov ebx, esp
mov word [esi + eax*2], cx
lea edi, [esi - 0x10]
mov dword [ebp - 0x1c], ebx
push edi
call fcn.004035b0
add esp, 4
lea ecx, [ebp - 0x1c]
add eax, 0x10
mov dword [ebx], eax
call fcn.005b0260
add esp, 4
mov byte [ebp - 4], 2
mov edx, dword [eax]
lea ecx, [edx - 0x10]
cmp ecx, edi
je 0x57bdbc
cmp dword [edi + 0xc], 0
jl 0x57bdad
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x57bdad
push ecx
call fcn.004035b0
add esp, 4
mov ecx, edi
mov esi, eax
call fcn.00402670
add esi, 0x10
mov dword [ebp - 0x18], esi
jmp 0x57bdbc
push dword [edx - 0xc]
lea ecx, [ebp - 0x18]
push edx
call fcn.00403620
mov esi, dword [ebp - 0x18]
mov byte [ebp - 4], 1
or eax, 0xffffffff
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x57be02
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x57bdfe
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x57bdfe
push 0
push dword [edx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x57be02
mov ecx, edx
call edi
mov edi, dword [ebp + 0xc]
push edi
push 1
push ecx
push 0
call fcn.005832c0
test al, al
jne 0x57be29
push 0x62e4b0
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], 0xfe6
push eax
call fcn.005479aa
mov eax, dword [ebp + 0x10]
mov ebx, 0x10e0
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x57be65
test eax, eax
jne 0x57be59
push str.invalid_vector_T__subscript
call fcn.00545b0e
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
call fcn.005b00f0
mov ebx, eax
mov ecx, dword [0x643bf0]
xor eax, eax
test ecx, ecx
je 0x57be8b
cmp edi, 0x9fbf1
push 0x1001f
setne al
dec eax
and eax, 4
push dword [eax + 0x644028]
call ecx
push eax
push ebx
call dword [0x643b7c]
test al, al
jne 0x57beac
push 0x62e4b0
lea eax, [ebp - 0x48]
mov dword [ebp - 0x48], 0xff7
push eax
call fcn.005479aa
call dword [0x643b6c]
test al, al
jne 0x57becb
push 0x62e4b0
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x4c], 0x1000
push eax
call fcn.005479aa
mov eax, dword [ebp + 0x10]
mov ebx, dword [sym.imp.SUCMLIB.dll_Ordinal_76]
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x80], eax
cmp edi, eax
je 0x57bff3
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 0
push eax
call dword [sym.imp.SUCMLIB.dll_Ordinal_73]
mov ecx, dword [ebp + 0xc]
push dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x1c]
fild dword [edi + 0x14]
fstp qword [ebp - 0x88]
fld qword [ebp - 0x88]
mov eax, dword [edi + 4]
dec eax
fst qword [ebp - 0x30]
fstp qword [ebp - 0x28]
cmp eax, 0x2f
ja case.0x57bf24.2
movzx eax, byte [eax + 0x57c1b8]
jmp dword [eax*4 + 0x57c19c]
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x38], 1
jmp 0x57bf7b
mov dword [ebp - 0x34], 1
jmp 0x57bf74
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x38], 0x10
jmp 0x57bf7b
mov dword [ebp - 0x34], 4
jmp 0x57bf74
mov dword [ebp - 0x34], 3
mov dword [ebp - 0x38], 0x10
jmp 0x57bf7b
mov dword [ebp - 0x34], 3
mov dword [ebp - 0x38], 8
mov eax, dword [edi + 0xc]
lea edx, [ebp - 0x40]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x3c], eax
mov eax, dword [ecx]
push edx
call dword [eax + 0x18]
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x18]
push esi
mov eax, dword [ecx]
call dword [eax + 0x20]
push dword [ebp + 0xc]
call dword [0x643b44]
test al, al
lea eax, [ebp + 0xc]
push eax
jne 0x57bfc7
call ebx
push 0x62e4b0
lea eax, [ebp - 0x50]
mov dword [ebp - 0x50], 0x1021
push eax
call fcn.005479aa
call ebx
call dword [0x643b2c]
test al, al
jne 0x57bfe8
push 0x62e4b0
lea eax, [ebp - 0x54]
mov dword [ebp - 0x54], 0x102b
push eax
call fcn.005479aa
mov eax, dword [ebp + 0x10]
add edi, 0x1c
jmp 0x57bed6
call dword [0x643b40]
xor al, al
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
mov byte [ebp - 0x74], al
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 2
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
test al, al
jne 0x57c06f
push 1
lea eax, [ebp - 0x7c]
push eax
call dword [0x643b58]
test al, al
je 0x57c04f
mov al, byte [ebp - 0x74]
jmp 0x57c036
push esi
mov byte [ebp - 0x11], 0
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x62e4b0
lea eax, [ebp - 0x58]
mov dword [ebp - 0x58], 0x1046
push eax
call fcn.005479aa
mov ebx, dword [ebp + 0x14]
push dword [ebx]
push esi
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x57c0be
push eax
push dword [ebx]
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x57c0be
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 3
je 0x57c0b7
sub eax, 2
je 0x57c0b0
sub eax, 0x6b
je 0x57c0a9
mov ebx, 0x9ca04
jmp 0x57c0c0
mov ebx, 0x9e701
jmp 0x57c0c0
mov ebx, 0x9f405
jmp 0x57c0c0
mov ebx, 0x97204
jmp 0x57c0c0
xor ebx, ebx
mov byte [ebp - 4], 0
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x57c173
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x57c103
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x57c103
push 0
push dword [ecx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x57c173
call edx
jmp 0x57c173
push 0x80070057
call fcn.00402650
cmp byte [ebp - 0x11], 0
je 0x57c149
call dword [0x643b24]
lea ecx, [ebp - 0xac]
call fcn.00403c10
cmp byte [ebp - 0xa4], 0
jne 0x57c149
push 1
lea eax, [ebp - 0xac]
push eax
call dword [0x643b58]
cmp byte [ebp - 0xa4], 0
je 0x57c131
mov edi, dword [ebp - 0x20]
cmp dword [edi + 0x44], 0
lea esi, [edi + 0x44]
jne 0x57c15c
push esi
call dword [0x643b34]
mov eax, dword [esi]
mov dword [ebp + 0x10], eax
mov dword [edi + 0x48], eax
mov eax, 0x57c170
mov dword [esi], 0
ret
sub esp, 8
mov dword [ebp - 4], 0xffffffff
push 0
call fcn.00583250
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14