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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5aff29
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
push ebx
push esi
push edi
mov eax, dword [0x616040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x58], 0x621ed0
mov byte [ebp - 0x15], 0
mov dword [ebp - 4], 0
call fcn.0041505f
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x557973
push 0x80004005
call fcn.00402740
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x1c], 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 0x5579a8
push 0x104
lea ecx, [ebp - 0x1c]
call fcn.00402c20
mov esi, dword [ebp - 0x1c]
push esi
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push dword [esi - 8]
push esi
call fcn.00528e72
add esp, 8
test eax, eax
js 0x557d5d
cmp eax, dword [esi - 8]
jg 0x557d5d
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 0x557a06
push 0x104
lea ecx, [ebp - 0x1c]
call fcn.00402c20
mov esi, dword [ebp - 0x1c]
push ebx
push esi
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push dword [esi - 8]
push esi
call fcn.00528e72
add esp, 8
test eax, eax
js 0x557d5d
cmp eax, dword [esi - 8]
jg 0x557d5d
xor ecx, ecx
mov dword [esi - 0xc], eax
push ecx
mov word [esi + eax*2], cx
mov edi, esp
add esi, 0xfffffff0
push esi
call fcn.00403660
add esp, 4
lea ecx, [ebp - 0x20]
add eax, 0x10
mov dword [edi], eax
call fcn.0058bc90
add esp, 4
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call fcn.004032d0
mov byte [ebp - 4], 1
or eax, 0xffffffff
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x557a81
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp + 0xc]
push esi
push 1
push ecx
push 0
call fcn.0055e990
test al, al
jne 0x557aa8
push 0x60baf4
lea eax, [ebp - 0x54]
mov dword [ebp - 0x54], 0xfd3
push eax
call fcn.0052d7c1
mov ecx, dword [ebp + 0x10]
mov eax, 0x92492493
mov ebx, 0x10e0
mov edi, dword [ecx]
mov ecx, dword [ecx + 4]
sub ecx, edi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x557ad5
mov ecx, edi
call fcn.0058b820
mov ebx, eax
xor ecx, ecx
cmp esi, 0x9fbf1
jne 0x557ae4
mov ecx, 1
mov eax, dword [0x621a6c]
test eax, eax
je 0x557afb
push 0x1001f
push dword [ecx*4 + 0x621ebc]
call eax
push eax
push ebx
call dword [0x621964]
test al, al
jne 0x557b1c
push 0x60baf4
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x4c], 0xfe4
push eax
call fcn.0052d7c1
call dword [0x6219cc]
test al, al
jne 0x557b3b
push 0x60baf4
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x5c], 0xfed
push eax
call fcn.0052d7c1
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp - 0x1c]
mov ebx, dword [sym.imp.SUCMLIB.dll_Ordinal_76]
mov esi, dword [eax]
lea esp, [esp]
cmp esi, dword [eax + 4]
je 0x557c68
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 [esi]
mov eax, dword [ecx]
call dword [eax + 0x1c]
fild dword [esi + 0x14]
fstp qword [ebp - 0x8c]
fld qword [ebp - 0x8c]
mov eax, dword [esi + 4]
dec eax
fst qword [ebp - 0x34]
fstp qword [ebp - 0x2c]
cmp eax, 0x2f
ja case.0x557b99.2
movzx eax, byte [eax + 0x557e10]
jmp dword [eax*4 + 0x557df4]
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x3c], 1
jmp 0x557bf0
mov dword [ebp - 0x38], 1
jmp 0x557be9
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x3c], 0x10
jmp 0x557bf0
mov dword [ebp - 0x38], 4
jmp 0x557be9
mov dword [ebp - 0x38], 3
mov dword [ebp - 0x3c], 0x10
jmp 0x557bf0
mov dword [ebp - 0x38], 3
mov dword [ebp - 0x3c], 8
mov eax, dword [esi + 0xc]
lea edx, [ebp - 0x44]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x44], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x40], eax
mov eax, dword [ecx]
push edx
call dword [eax + 0x18]
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp - 0x1c]
push edi
mov eax, dword [ecx]
call dword [eax + 0x20]
push dword [ebp + 0xc]
call dword [0x621958]
test al, al
lea eax, [ebp + 0xc]
push eax
jne 0x557c3c
call ebx
push 0x60baf4
lea eax, [ebp - 0x50]
mov dword [ebp - 0x50], 0x100e
push eax
call fcn.0052d7c1
call ebx
call dword [0x62197c]
test al, al
jne 0x557c5d
push 0x60baf4
lea eax, [ebp - 0x48]
mov dword [ebp - 0x48], 0x1018
push eax
call fcn.0052d7c1
mov eax, dword [ebp + 0x10]
add esi, 0x1c
jmp 0x557b50
call dword [0x621998]
xor al, al
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0
mov byte [ebp - 0x7c], al
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 2
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov edi, edi
test al, al
jne 0x557cec
push 1
lea eax, [ebp - 0x84]
push eax
call dword [0x621978]
test al, al
je 0x557ccc
mov al, byte [ebp - 0x7c]
jmp 0x557cb0
push edi
mov byte [ebp - 0x15], 0
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x60baf4
lea eax, [ebp - 0x60]
mov dword [ebp - 0x60], 0x1033
push eax
call fcn.0052d7c1
mov ebx, dword [ebp + 0x14]
push dword [ebx]
push edi
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x557d3b
push eax
push dword [ebx]
push edi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x557d3b
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 3
je 0x557d34
sub eax, 2
je 0x557d2d
sub eax, 0x6b
je 0x557d26
mov ebx, 0x9ca04
jmp 0x557d3d
mov ebx, 0x9e701
jmp 0x557d3d
mov ebx, 0x9f405
jmp 0x557d3d
mov ebx, 0x97204
jmp 0x557d3d
xor ebx, ebx
add edi, 0xfffffff0
mov byte [ebp - 4], 0
or ecx, 0xffffffff
lea eax, [edi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x557dc9
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x557dc9
push 0x80070057
call fcn.00402740
cmp byte [ebp - 0x15], 0
je 0x557d9f
call dword [0x621988]
lea ecx, [ebp - 0xb0]
call fcn.004038d0
cmp byte [ebp - 0xa8], 0
jne 0x557d9f
push 1
lea eax, [ebp - 0xb0]
push eax
call dword [0x621978]
cmp byte [ebp - 0xa8], 0
je 0x557d87
mov edi, dword [ebp - 0x58]
cmp dword [edi + 0x44], 0
lea esi, [edi + 0x44]
jne 0x557db2
push esi
call dword [0x62196c]
mov eax, dword [esi]
mov dword [ebp + 0x10], eax
mov dword [edi + 0x48], eax
mov eax, 0x557dc6
mov dword [esi], 0
ret
sub esp, 8
mov dword [ebp - 4], 0xffffffff
push dword [ebp - 0x24]
call fcn.0055e930
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