Function at 0x10f76b0
Capabilities:
Copy file
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1141dc8
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x115f604]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [0x1161d94]
mov edx, dword [eax + 0xc]
xor esi, esi
mov ecx, 0x1161d94
mov ebx, 0x80048257
mov dword [ebp - 0x20], esi
call edx
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], esi
mov eax, dword [0x1161d94]
mov edx, dword [eax + 0xc]
mov ecx, 0x1161d94
mov dword [ebp - 4], esi
call edx
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
mov byte [ebp - 4], 1
call fcn.01127f00
test al, al
je 0x10f774a
cmp dword [ebp + 8], 0
mov eax, 0x1049554
jne 0x10f7731
mov eax, 0x1049544
mov ecx, dword [ebp + 0xc]
push ecx
push eax
push 0x10494f0
push 0x1049470
push 3
call fcn.01128b70
add esp, 0x14
mov eax, dword [esi - 8]
mov edx, dword [edi + 0x34]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x105
or eax, ecx
mov dword [ebp - 0x14], edx
jge 0x10f7774
push 0x105
lea ecx, [ebp - 0x10]
call fcn.010745e0
mov esi, dword [ebp - 0x10]
mov eax, 0x105
cmp dword [esi - 8], eax
jge 0x10f7788
push 0x80070057
call fcn.01071710
mov dword [esi - 0xc], eax
mov eax, dword [ebp - 0x14]
push 0x1049454
push eax
push esi
mov word [esi + 0x20a], 0
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov eax, esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10f77b0
sub eax, edx
sar eax, 1
js 0x10f777e
cmp eax, dword [esi - 8]
jg 0x10f777e
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
mov eax, dword [esi - 0xc]
test eax, eax
jne 0x10f7800
mov ebx, 0x80048257
call fcn.01127f00
test al, al
je 0x10f7a26
push ebx
push 0x1049418
push 0x1049398
push 0
call fcn.01128b70
add esp, 0x10
jmp 0x10f7a26
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x10f7a26
push eax
push esi
mov ecx, edi
call fcn.010ef350
mov ebx, eax
test ebx, ebx
jge 0x10f7842
call fcn.01127f00
test al, al
je 0x10f7838
push ebx
push 0x1049348
push 0x10492c8
push 0
call fcn.01128b70
add esp, 0x10
mov ebx, 0x80048257
jmp 0x10f7a26
push 0
push esi
call fcn.0112e2d0
mov ebx, eax
test ebx, ebx
jge 0x10f78c7
call fcn.01127f00
test al, al
je 0x10f786f
push ebx
push esi
push 0x1049228
push 0x10491a8
push 0
call fcn.01128b70
add esp, 0x14
push esi
mov ebx, 0x8004888d
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x10f7a26
call fcn.01127f00
test al, al
je 0x10f7a26
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
test eax, eax
jg 0x10f78a0
call edi
jmp 0x10f78ac
call edi
and eax, 0xffff
or eax, 0x80070000
push eax
push esi
push 0x1049158
push 0x10490d8
push 0
call fcn.01128b70
add esp, 0x14
jmp 0x10f7a26
lea edx, [ebp + 0xc]
lea ecx, [edi + 0x134]
push edx
call fcn.010f0d00
mov eax, dword [eax]
push 0xffffffffffffffff
push eax
push 0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 2
call fcn.010c8ad0
lea ecx, [ebp + 0xc]
mov ebx, eax
mov byte [ebp - 4], 1
call fcn.0111cdb0
test ebx, ebx
je 0x10f79e1
mov ecx, dword [ebp + 8]
test ecx, ecx
lea eax, [edi + 0x2c]
jne 0x10f790c
lea eax, [edi + 0x30]
mov eax, dword [eax]
push ecx
mov ecx, edi
mov dword [ebp - 0x14], eax
call fcn.010f06c0
mov ebx, eax
test ebx, ebx
jl 0x10f7a26
mov ecx, dword [ebp - 0x14]
push 0
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
push esi
jne 0x10f7986
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x10f797a
call fcn.01127f00
test al, al
je 0x10f797a
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
test eax, eax
jg 0x10f7958
call edi
jmp 0x10f7964
call edi
and eax, 0xffff
or eax, 0x80070000
push eax
push esi
push 0x1049158
push 0x1049058
push 0
call fcn.01128b70
add esp, 0x14
call fcn.01071a70
mov ebx, eax
jmp 0x10f7a26
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x10f79cb
call fcn.01127f00
test al, al
je 0x10f79cb
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
test eax, eax
jg 0x10f79a9
call ebx
jmp 0x10f79b5
call ebx
and eax, 0xffff
or eax, 0x80070000
push eax
push esi
push 0x1049158
push 0x1048fd8
push 0
call fcn.01128b70
add esp, 0x14
mov edx, dword [ebp + 8]
lea eax, [edi + 0x134]
push eax
push edx
mov ecx, edi
call fcn.010f6090
xor ebx, ebx
jmp 0x10f7a26
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
test eax, eax
jg 0x10f79f3
call edi
mov edi, eax
jmp 0x10f7a03
call edi
mov edi, eax
and edi, 0xffff
or edi, 0x80070000
call fcn.01127f00
test al, al
je 0x10f7a21
push edi
push 0x1047c30
push 0x1048f58
push 0
call fcn.01128b70
add esp, 0x10
mov ebx, 0x80048006
add esi, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x10f7a46
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
cmp dword [ebp - 0x20], 0
mov esi, dword [ebp - 0x18]
mov dword [ebp - 4], 0xffffffff
je 0x10f7a61
test esi, esi
je 0x10f7a6c
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
test esi, esi
je 0x10f7a6c
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10f7a8b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
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 8