Function at 0x480870
Capabilities:
Copy file
Delete file
Get file attributes
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x73d1ed
mov eax, dword fs:[0]
push eax
sub esp, 0x698
mov eax, dword [0x8312b0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov eax, dword [ebp + 8]
mov ecx, eax
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x690], eax
mov byte [ebp - 0x689], 0
call fcn.00461b90
test al, al
je 0x480f57
xor esi, esi
mov dword [ebp - 0x674], 7
xor eax, eax
mov dword [ebp - 0x678], esi
mov word [ebp - 0x688], ax
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x688]
cmp byte [ebx + 0x7c], al
je 0x4808f4
push 0x1d
push str.C:WindowsSystem32downlevel
jmp 0x4808fb
push 0x13
push 0x7ee268
call fcn.0044bdc0
push 0x208
lea eax, [ebp - 0x230]
push 0
push eax
call fcn.0070dcd0
push 0x208
lea eax, [ebp - 0x438]
push 0
push eax
call fcn.0070dcd0
mov ebx, dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x688]
add esp, 0x18
cmp dword [ebp - 0x674], 8
cmovae eax, dword [ebp - 0x688]
push edi
push eax
lea eax, [ebp - 0x230]
push eax
call ebx
nop
push 0x208
lea eax, [ebp - 0x640]
push 0
push eax
call fcn.0070dcd0
push esi
push edi
lea eax, [ebp - 0x640]
inc esi
push str._s_dtmp
push eax
call fcn.0045b740
add esp, 0x1c
lea ecx, [ebp - 0x640]
cmp dword [ebp - 0x674], 8
lea eax, [ebp - 0x688]
cmovae eax, dword [ebp - 0x688]
push ecx
push eax
lea eax, [ebp - 0x438]
push eax
call ebx
lea ecx, [ebp - 0x438]
call fcn.00461d90
test al, al
jne 0x4809cc
lea eax, [ebp - 0x438]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00715cc1
add esp, 8
test eax, eax
je 0x480adf
cmp esi, 0xa
jl 0x480950
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x4809f7
and eax, 0xfffffffe
push eax
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 1
lea eax, [ebp - 0x230]
push eax
push dword [ebp - 0x690]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x480b32
call fcn.0046efe0
mov edi, dword [eax + 8]
test edi, edi
je 0x480a34
lock inc dword [edi + 4]
mov edi, dword [eax + 8]
mov ebx, dword [eax + 4]
or esi, 0xffffffff
mov byte [ebp - 4], 6
test edi, edi
je 0x480a61
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x480a61
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x480a61
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov byte [ebp - 4], 0
test ebx, ebx
je 0x480f4c
call fcn.0046efe0
lea ecx, [ebp - 0x6a0]
push ecx
mov ecx, eax
call fcn.0046f080
mov edi, dword [eax]
mov dword [ebp - 0x648], 0
mov dword [ebp - 0x644], 0xf
mov byte [ebp - 0x658], 0
push 0x7ee370
lea ecx, [ebp - 0x658]
mov byte [ebp - 4], 8
call fcn.00463b90
push 0x5c
push 0x7ee374
mov ebx, eax
call fcn.0070c820
add esp, 8
test eax, eax
je 0x480dae
push 0x5c
push 0x7ee3a8
call fcn.0070c820
add esp, 8
inc eax
jmp 0x480db3
lea ecx, [ebp - 0x230]
call fcn.00462d80
push 1
lea eax, [ebp - 0x230]
push eax
push dword [ebp - 0x690]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x480b3e
lea eax, [ebp - 0x438]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x480b25
and eax, 0xfffffffe
push eax
lea eax, [ebp - 0x438]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [ebp - 0x438]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [ebp - 0x689], 1
jmp 0x480f4c
call fcn.0046efe0
mov edi, dword [eax + 8]
test edi, edi
je 0x480b51
lock inc dword [edi + 4]
mov edi, dword [eax + 8]
mov ebx, dword [eax + 4]
or esi, 0xffffffff
mov byte [ebp - 4], 1
test edi, edi
je 0x480b7e
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x480b7e
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x480b7e
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov byte [ebp - 4], 0
test ebx, ebx
je 0x480d93
call fcn.0046efe0
lea ecx, [ebp - 0x694]
push ecx
mov ecx, eax
call fcn.0046f080
mov edi, dword [eax]
mov dword [ebp - 0x648], 0
mov dword [ebp - 0x644], 0xf
mov byte [ebp - 0x658], 0
push 0x7ee2a0
lea ecx, [ebp - 0x658]
mov byte [ebp - 4], 3
call fcn.00463b90
push 0x5c
push 0x7ee2a4
mov ebx, eax
call fcn.0070c820
add esp, 8
test eax, eax
je 0x480bf5
push 0x5c
push 0x7ee2d8
call fcn.0070c820
add esp, 8
inc eax
jmp 0x480bfa
mov eax, 0x7ee30c
push eax
mov ecx, ebx
call fcn.00463b90
push 0x7ee340
mov ecx, eax
call fcn.00463b90
push 0x7ee344
mov ecx, eax
call fcn.00463b90
push 0x7ee358
mov ecx, eax
call fcn.00463b90
mov edx, 0x23a
lea ecx, [ebp - 0x13]
mov ebx, eax
call fcn.0046eeb0
mov ecx, eax
mov dword [ebp - 0x660], 0
lea eax, [ebp - 0x13]
mov dword [ebp - 0x65c], 0xf
mov byte [ebp - 0x670], 0
cmp ecx, eax
je 0x480c68
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x670]
call fcn.00460f20
lea eax, [ebp - 0x670]
mov byte [ebp - 4], 4
push eax
mov ecx, ebx
call fcn.00463880
push 0x7ee35c
mov ecx, eax
call fcn.00463b90
push 0x7ee360
mov ecx, eax
call fcn.00463b90
cmp dword [eax + 0x14], 0x10
jb 0x480c9a
mov eax, dword [eax]
push eax
push 4
sub esp, 0xc
mov dword [ebp - 0x6a4], 0x8048bc
mov eax, esp
mov dword [ebp - 0x6a0], 0
movq xmm0, qword [ebp - 0x6a4]
mov ecx, edi
movq qword [eax], xmm0
mov dword [eax + 8], 0x8048bc
call fcn.0046ec20
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x65c]
cmp edx, 0x10
jb 0x480d0e
mov ecx, dword [ebp - 0x670]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x480d04
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x480f7b
push edx
push ecx
call fcn.006f4f2f
add esp, 8
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x644]
cmp edx, 0x10
jb 0x480d4c
mov ecx, dword [ebp - 0x658]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x480d42
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x480f80
push edx
push ecx
call fcn.006f4f2f
add esp, 8
mov dword [ebp - 0x648], 0
mov dword [ebp - 0x644], 0xf
mov byte [ebp - 0x658], 0
mov byte [ebp - 4], 5
mov edi, dword [ebp - 0x690]
test edi, edi
je 0x480d93
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x480d93
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], esi
dec esi
jne 0x480d93
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x438]
push eax
call fcn.00715cc1
add esp, 8
jmp 0x480f4c
mov eax, str.d:_svn_trunkdrvrepairtoolclientcchecksysdll.cpp
push eax
mov ecx, ebx
call fcn.00463b90
push 0x7ee410
mov ecx, eax
call fcn.00463b90
push str.RepairApiSetFile
mov ecx, eax
call fcn.00463b90
push 0x7ee428
mov ecx, eax
call fcn.00463b90
mov edx, 0x247
lea ecx, [ebp - 0x13]
mov ebx, eax
call fcn.0046eeb0
mov ecx, eax
mov dword [ebp - 0x660], 0
lea eax, [ebp - 0x13]
mov dword [ebp - 0x65c], 0xf
mov byte [ebp - 0x670], 0
cmp ecx, eax
je 0x480e21
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x670]
call fcn.00460f20
lea eax, [ebp - 0x670]
mov byte [ebp - 4], 9
push eax
mov ecx, ebx
call fcn.00463880
push 0x7ee42c
mov ecx, eax
call fcn.00463b90
push str.copyfile_failed
mov ecx, eax
call fcn.00463b90
cmp dword [eax + 0x14], 0x10
jb 0x480e53
mov eax, dword [eax]
push eax
push 4
sub esp, 0xc
mov dword [ebp - 0x698], 0x8048bc
mov eax, esp
mov dword [ebp - 0x694], 0
movq xmm0, qword [ebp - 0x698]
mov ecx, edi
movq qword [eax], xmm0
mov dword [eax + 8], 0x8048bc
call fcn.0046ec20
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x65c]
cmp edx, 0x10
jb 0x480ec7
mov ecx, dword [ebp - 0x670]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x480ebd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x480f85
push edx
push ecx
call fcn.006f4f2f
add esp, 8
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x644]
cmp edx, 0x10
jb 0x480f05
mov ecx, dword [ebp - 0x658]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x480efb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x480f8a
push edx
push ecx
call fcn.006f4f2f
add esp, 8
mov dword [ebp - 0x648], 0
mov dword [ebp - 0x644], 0xf
mov byte [ebp - 0x658], 0
mov byte [ebp - 4], 0xa
mov edi, dword [ebp - 0x69c]
test edi, edi
je 0x480f4c
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x480f4c
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], esi
dec esi
jne 0x480f4c
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 4]
lea ecx, [ebp - 0x688]
call fcn.0044bf40
mov al, byte [ebp - 0x689]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006f4f1e
mov esp, ebp
pop ebp
ret 8
call fcn.00710a9c
call fcn.00710a9c
call fcn.00710a9c
call fcn.00710a9c
int3