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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5afb59
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.00414e1f
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x557943
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 0x557978
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 0x557d2d
cmp eax, dword [esi - 8]
jg 0x557d2d
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 0x5579d6
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 0x557d2d
cmp eax, dword [esi - 8]
jg 0x557d2d
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.0058b990
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 0x557a51
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.0055e9d0
test al, al
jne 0x557a78
push 0x60bae4
lea eax, [ebp - 0x54]
mov dword [ebp - 0x54], 0xfd0
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 0x557aa5
mov ecx, edi
call fcn.0058b550
mov ebx, eax
xor ecx, ecx
cmp esi, 0x9fbf1
jne 0x557ab4
mov ecx, 1
mov eax, dword [0x621a6c]
test eax, eax
je 0x557acb
push 0x1001f
push dword [ecx*4 + 0x621ebc]
call eax
push eax
push ebx
call dword [0x621964]
test al, al
jne 0x557aec
push 0x60bae4
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x4c], 0xfe1
push eax
call fcn.0052d791
call dword [0x6219cc]
test al, al
jne 0x557b0b
push 0x60bae4
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x5c], 0xfea
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 0x557c38
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.0x557b69.2
movzx eax, byte [eax + 0x557de0]
jmp dword [eax*4 + 0x557dc4]
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x3c], 1
jmp 0x557bc0
mov dword [ebp - 0x38], 1
jmp 0x557bb9
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x3c], 0x10
jmp 0x557bc0
mov dword [ebp - 0x38], 4
jmp 0x557bb9
mov dword [ebp - 0x38], 3
mov dword [ebp - 0x3c], 0x10
jmp 0x557bc0
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 0x557c0c
call ebx
push 0x60bae4
lea eax, [ebp - 0x50]
mov dword [ebp - 0x50], 0x100b
push eax
call fcn.0052d791
call ebx
call dword [0x62197c]
test al, al
jne 0x557c2d
push 0x60bae4
lea eax, [ebp - 0x48]
mov dword [ebp - 0x48], 0x1015
push eax
call fcn.0052d791
mov eax, dword [ebp + 0x10]
add esi, 0x1c
jmp 0x557b20
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 0x557cbc
push 1
lea eax, [ebp - 0x84]
push eax
call dword [0x621978]
test al, al
je 0x557c9c
mov al, byte [ebp - 0x7c]
jmp 0x557c80
push edi
mov byte [ebp - 0x15], 0
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x60bae4
lea eax, [ebp - 0x60]
mov dword [ebp - 0x60], 0x1030
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 0x557d0b
push eax
push dword [ebx]
push edi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x557d0b
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 3
je 0x557d04
sub eax, 2
je 0x557cfd
sub eax, 0x6b
je 0x557cf6
mov ebx, 0x9ca04
jmp 0x557d0d
mov ebx, 0x9e701
jmp 0x557d0d
mov ebx, 0x9f405
jmp 0x557d0d
mov ebx, 0x97204
jmp 0x557d0d
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 0x557d99
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x557d99
push 0x80070057
call fcn.00402740
cmp byte [ebp - 0x15], 0
je 0x557d6f
call dword [0x621988]
lea ecx, [ebp - 0xb0]
call fcn.004038d0
cmp byte [ebp - 0xa8], 0
jne 0x557d6f
push 1
lea eax, [ebp - 0xb0]
push eax
call dword [0x621978]
cmp byte [ebp - 0xa8], 0
je 0x557d57
mov edi, dword [ebp - 0x58]
cmp dword [edi + 0x44], 0
lea esi, [edi + 0x44]
jne 0x557d82
push esi
call dword [0x62196c]
mov eax, dword [esi]
mov dword [ebp + 0x10], eax
mov dword [edi + 0x48], eax
mov eax, 0x557d96
mov dword [esi], 0
ret
sub esp, 8
mov dword [ebp - 4], 0xffffffff
push dword [ebp - 0x24]
call fcn.0055e970
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