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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ad999
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
push ebx
push esi
push edi
mov eax, dword [0x614040]
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], 0x61fed0
mov byte [ebp - 0x15], 0
mov dword [ebp - 4], 0
call fcn.00414eab
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x557563
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 0x557598
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.00528e42
add esp, 8
test eax, eax
js 0x55794d
cmp eax, dword [esi - 8]
jg 0x55794d
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 0x5575f6
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.00528e42
add esp, 8
test eax, eax
js 0x55794d
cmp eax, dword [esi - 8]
jg 0x55794d
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.00589950
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 0x557671
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.0055e5c0
test al, al
jne 0x557698
push 0x6098b4
lea eax, [ebp - 0x54]
mov dword [ebp - 0x54], 0xfc7
push eax
call fcn.0052d791
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 0x5576c5
mov ecx, edi
call fcn.00589520
mov ebx, eax
xor ecx, ecx
cmp esi, 0x9fbf1
jne 0x5576d4
mov ecx, 1
mov eax, dword [0x61fa68]
test eax, eax
je 0x5576eb
push 0x1001f
push dword [ecx*4 + 0x61feb8]
call eax
push eax
push ebx
call dword [0x61f964]
test al, al
jne 0x55770c
push 0x6098b4
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x4c], 0xfd8
push eax
call fcn.0052d791
call dword [0x61f9cc]
test al, al
jne 0x55772b
push 0x6098b4
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x5c], 0xfe1
push eax
call fcn.0052d791
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 0x557858
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.0x557789.2
movzx eax, byte [eax + 0x557a00]
jmp dword [eax*4 + 0x5579e4]
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x3c], 1
jmp 0x5577e0
mov dword [ebp - 0x38], 1
jmp 0x5577d9
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x3c], 0x10
jmp 0x5577e0
mov dword [ebp - 0x38], 4
jmp 0x5577d9
mov dword [ebp - 0x38], 3
mov dword [ebp - 0x3c], 0x10
jmp 0x5577e0
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 [0x61f958]
test al, al
lea eax, [ebp + 0xc]
push eax
jne 0x55782c
call ebx
push 0x6098b4
lea eax, [ebp - 0x50]
mov dword [ebp - 0x50], 0x1002
push eax
call fcn.0052d791
call ebx
call dword [0x61f97c]
test al, al
jne 0x55784d
push 0x6098b4
lea eax, [ebp - 0x48]
mov dword [ebp - 0x48], 0x100c
push eax
call fcn.0052d791
mov eax, dword [ebp + 0x10]
add esi, 0x1c
jmp 0x557740
call dword [0x61f998]
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 0x5578dc
push 1
lea eax, [ebp - 0x84]
push eax
call dword [0x61f978]
test al, al
je 0x5578bc
mov al, byte [ebp - 0x7c]
jmp 0x5578a0
push edi
mov byte [ebp - 0x15], 0
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x6098b4
lea eax, [ebp - 0x60]
mov dword [ebp - 0x60], 0x1027
push eax
call fcn.0052d791
mov ebx, dword [ebp + 0x14]
push dword [ebx]
push edi
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x55792b
push eax
push dword [ebx]
push edi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x55792b
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 3
je 0x557924
sub eax, 2
je 0x55791d
sub eax, 0x6b
je 0x557916
mov ebx, 0x9ca04
jmp 0x55792d
mov ebx, 0x9e701
jmp 0x55792d
mov ebx, 0x9f405
jmp 0x55792d
mov ebx, 0x97204
jmp 0x55792d
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 0x5579b9
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x5579b9
push 0x80070057
call fcn.00402740
cmp byte [ebp - 0x15], 0
je 0x55798f
call dword [0x61f988]
lea ecx, [ebp - 0xb0]
call fcn.004038d0
cmp byte [ebp - 0xa8], 0
jne 0x55798f
push 1
lea eax, [ebp - 0xb0]
push eax
call dword [0x61f978]
cmp byte [ebp - 0xa8], 0
je 0x557977
mov edi, dword [ebp - 0x58]
cmp dword [edi + 0x44], 0
lea esi, [edi + 0x44]
jne 0x5579a2
push esi
call dword [0x61f96c]
mov eax, dword [esi]
mov dword [ebp + 0x10], eax
mov dword [edi + 0x48], eax
mov eax, 0x5579b6
mov dword [esi], 0
ret
sub esp, 8
mov dword [ebp - 4], 0xffffffff
push dword [ebp - 0x24]
call fcn.0055e560
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