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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x73c08e
mov eax, dword fs:[0]
push eax
sub esp, 0x6b8
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, dword [ebp + 8]
mov ecx, ebx
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x6ac], ebx
mov byte [ebp - 0x6a1], 0
call fcn.00461b90
test al, al
je 0x46617e
push 0x208
xor esi, esi
lea eax, [ebp - 0x248]
push esi
push eax
call fcn.0070dcd0
push 0x208
lea eax, [ebp - 0x450]
push esi
push eax
call fcn.0070dcd0
mov ebx, dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x248]
add esp, 0x18
push edi
push 0x7e7098
push eax
call ebx
nop
push 0x208
lea eax, [ebp - 0x658]
push 0
push eax
call fcn.0070dcd0
push esi
push edi
lea eax, [ebp - 0x658]
inc esi
push 0x7e70c0
push eax
call fcn.0045b740
add esp, 0x1c
lea eax, [ebp - 0x658]
push eax
push 0x7e70d0
lea eax, [ebp - 0x450]
push eax
call ebx
lea ecx, [ebp - 0x450]
call fcn.00461d90
test al, al
jne 0x465bbc
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x248]
push eax
call fcn.00715cc1
add esp, 8
test eax, eax
je 0x465ce3
cmp esi, 0xa
jl 0x465b50
lea eax, [ebp - 0x248]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x465be3
and eax, 0xfffffffe
push eax
lea eax, [ebp - 0x248]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [ebp - 0x248]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x248]
call fcn.00462d80
push 1
lea eax, [ebp - 0x248]
push eax
push dword [ebp - 0x6ac]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x465d36
call fcn.0046efe0
mov esi, dword [eax + 8]
test esi, esi
je 0x465c2b
lock inc dword [esi + 4]
mov esi, dword [eax + 8]
mov edi, dword [eax + 4]
or ebx, 0xffffffff
mov dword [ebp - 4], 5
test esi, esi
je 0x465c5b
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x465c5b
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x465c5b
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
test edi, edi
je 0x4665da
call fcn.0046efe0
lea ecx, [ebp - 0x6b4]
push ecx
mov ecx, eax
call fcn.0046f080
mov dword [ebp - 4], 6
mov esi, dword [eax]
mov dword [ebp - 0x678], 0
mov dword [ebp - 0x674], 0xf
mov byte [ebp - 0x688], 0
push 0x7e71c4
lea ecx, [ebp - 0x688]
mov byte [ebp - 4], 7
call fcn.00463b90
push 0x5c
push 0x7e71c8
mov edi, eax
call fcn.0070c820
add esp, 8
test eax, eax
je 0x465fcc
push 0x5c
push 0x7e71fc
call fcn.0070c820
add esp, 8
inc eax
jmp 0x465fd1
lea ecx, [ebp - 0x248]
call fcn.00462d80
push 1
lea eax, [ebp - 0x248]
push eax
push dword [ebp - 0x6ac]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x465d4f
lea eax, [ebp - 0x450]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x465d29
and eax, 0xfffffffe
push eax
lea eax, [ebp - 0x450]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [ebp - 0x450]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp byte [ebp + 0x10], 0
je 0x465d48
lea eax, [ebp - 0x248]
push eax
call fcn.00466630
mov al, 1
jmp 0x4665e0
call fcn.0046efe0
mov esi, dword [eax + 8]
test esi, esi
je 0x465d62
lock inc dword [esi + 4]
mov esi, dword [eax + 8]
mov edi, dword [eax + 4]
or ebx, 0xffffffff
mov dword [ebp - 4], 0
test esi, esi
je 0x465d92
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x465d92
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x465d92
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
test edi, edi
je 0x465fb4
call fcn.0046efe0
lea ecx, [ebp - 0x6b4]
push ecx
mov ecx, eax
call fcn.0046f080
mov dword [ebp - 4], 1
mov esi, dword [eax]
mov dword [ebp - 0x678], 0
mov dword [ebp - 0x674], 0xf
mov byte [ebp - 0x688], 0
push 0x7e70f8
lea ecx, [ebp - 0x688]
mov byte [ebp - 4], 2
call fcn.00463b90
push 0x5c
push 0x7e70fc
mov edi, eax
call fcn.0070c820
add esp, 8
test eax, eax
je 0x465e13
push 0x5c
push 0x7e7130
call fcn.0070c820
add esp, 8
inc eax
jmp 0x465e18
mov eax, 0x7e7164
push eax
mov ecx, edi
call fcn.00463b90
push 0x7e7198
mov ecx, eax
call fcn.00463b90
push 0x7e719c
mov ecx, eax
call fcn.00463b90
push 0x7e71ac
mov ecx, eax
call fcn.00463b90
mov edx, 0x1d6
lea ecx, [ebp - 0x13]
mov edi, 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 0x465e86
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x670]
call fcn.00460f20
lea eax, [ebp - 0x670]
mov byte [ebp - 4], 3
push eax
mov ecx, edi
call fcn.00463880
push 0x7e71b0
mov ecx, eax
call fcn.00463b90
push 0x7e71b4
mov ecx, eax
call fcn.00463b90
cmp dword [eax + 0x14], 0x10
jb 0x465eb8
mov eax, dword [eax]
push eax
push 4
sub esp, 0xc
mov dword [ebp - 0x6c0], 0x8048bc
mov eax, esp
mov dword [ebp - 0x6bc], 0
movq xmm0, qword [ebp - 0x6c0]
mov ecx, esi
movq qword [eax], xmm0
mov dword [eax + 8], 0x8048bc
call fcn.0046ec20
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x65c]
cmp edx, 0x10
jb 0x465f2c
mov ecx, dword [ebp - 0x670]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x465f22
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4665fe
push edx
push ecx
call fcn.006f4f2f
add esp, 8
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x674]
cmp edx, 0x10
jb 0x465f6a
mov ecx, dword [ebp - 0x688]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x465f60
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x466603
push edx
push ecx
call fcn.006f4f2f
add esp, 8
mov dword [ebp - 0x678], 0
mov dword [ebp - 0x674], 0xf
mov byte [ebp - 0x688], 0
mov dword [ebp - 4], 4
mov esi, dword [ebp - 0x6b0]
test esi, esi
je 0x465fb4
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x465fb4
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], ebx
dec ebx
jne 0x465fb4
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
lea eax, [ebp - 0x248]
push eax
lea eax, [ebp - 0x450]
push eax
call fcn.00715cc1
jmp 0x4665d7
mov eax, 0x7e7230
push eax
mov ecx, edi
call fcn.00463b90
push 0x7e7264
mov ecx, eax
call fcn.00463b90
push 0x7e7268
mov ecx, eax
call fcn.00463b90
push 0x7e7278
mov ecx, eax
call fcn.00463b90
mov edx, 0x1e8
lea ecx, [ebp - 0x13]
mov edi, 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 0x46603f
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x670]
call fcn.00460f20
lea eax, [ebp - 0x670]
mov byte [ebp - 4], 8
push eax
mov ecx, edi
call fcn.00463880
push 0x7e727c
mov ecx, eax
call fcn.00463b90
push 0x7e7280
mov ecx, eax
call fcn.00463b90
cmp dword [eax + 0x14], 0x10
jb 0x466071
mov eax, dword [eax]
push eax
push 4
sub esp, 0xc
mov dword [ebp - 0x6c0], 0x8048bc
mov eax, esp
mov dword [ebp - 0x6bc], 0
movq xmm0, qword [ebp - 0x6c0]
mov ecx, esi
movq qword [eax], xmm0
mov dword [eax + 8], 0x8048bc
call fcn.0046ec20
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x65c]
cmp edx, 0x10
jb 0x4660e5
mov ecx, dword [ebp - 0x670]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4660db
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x466608
push edx
push ecx
call fcn.006f4f2f
add esp, 8
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x674]
cmp edx, 0x10
jb 0x466123
mov ecx, dword [ebp - 0x688]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x466119
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46660d
push edx
push ecx
call fcn.006f4f2f
add esp, 8
mov dword [ebp - 0x678], 0
mov dword [ebp - 0x674], 0xf
mov byte [ebp - 0x688], 0
mov dword [ebp - 4], 9
mov esi, dword [ebp - 0x6b0]
test esi, esi
je 0x4665da
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x4665da
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], ebx
dec ebx
jne 0x4665da
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
jmp 0x4665da
mov edx, ebx
lea ecx, [ebp - 0x6a0]
call fcn.00463230
mov dword [ebp - 4], 0xa
call fcn.0046efe0
mov esi, dword [eax + 8]
test esi, esi
je 0x4661a5
lock inc dword [esi + 4]
mov esi, dword [eax + 8]
mov edi, dword [eax + 4]
or ebx, 0xffffffff
mov byte [ebp - 4], 0xb
test esi, esi
je 0x4661d2
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x4661d2
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x4661d2
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov byte [ebp - 4], 0xa
test edi, edi
je 0x4665a4
call fcn.0046efe0
mov ecx, eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x6ac], eax
test eax, eax
je 0x4661ff
lock inc dword [eax + 4]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x6ac], eax
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x6b0], ecx
mov dword [ebp - 0x6bc], ecx
mov dword [ebp - 0x6b8], eax
cmp dword [ebp - 0x68c], 0x10
lea eax, [ebp - 0x6a0]
mov dword [ebp - 0x65c], 0xf
cmovae eax, dword [ebp - 0x6a0]
mov dword [ebp - 0x6c4], eax
mov byte [ebp - 0x670], 0
push 1
lea eax, [ebp - 0x670]
mov byte [ebp - 4], 0xd
push 0x7e7290
push eax
mov dword [ebp - 0x660], 1
call fcn.0070d750
push 0x5c
push 0x7e7294
mov byte [ebp - 0x66f], 0
call fcn.0070c820
add esp, 0x14
test eax, eax
je 0x46628c
push 0x5c
push 0x7e72c8
call fcn.0070c820
add esp, 8
inc eax
jmp 0x466291
mov eax, str.d:_svn_trunkdrvrepairtoolclientccheckdirectx.cpp
push eax
lea ecx, [ebp - 0x670]
call fcn.00463b90
mov edi, eax
mov edx, dword [edi + 0x14]
mov eax, edx
mov ecx, dword [edi + 0x10]
sub eax, ecx
cmp eax, 1
jb 0x4662d6
lea eax, [ecx + 1]
mov dword [edi + 0x10], eax
mov eax, edi
cmp edx, 0x10
jb 0x4662bd
mov eax, dword [edi]
push 1
lea esi, [eax + ecx]
push 0x7e7330
push esi
call fcn.0070d750
add esp, 0xc
mov byte [esi + 1], 0
jmp 0x4662f5
push 1
push 0x7e7330
mov byte [ebp - 0x6a5], 0
mov ecx, edi
push dword [ebp - 0x6a5]
push 1
call fcn.004639e0
mov edi, eax
mov edx, dword [edi + 0x14]
mov eax, edx
mov ecx, dword [edi + 0x10]
sub eax, ecx
cmp eax, 0xd
jb 0x46632c
lea eax, [ecx + 0xd]
mov dword [edi + 0x10], eax
mov eax, edi
cmp edx, 0x10
jb 0x466313
mov eax, dword [edi]
push 0xd
lea esi, [eax + ecx]
push 0x7e7334
push esi
call fcn.0070d750
add esp, 0xc
mov byte [esi + 0xd], 0
jmp 0x46634b
push 0xd
push 0x7e7334
mov byte [ebp - 0x6a5], 0
mov ecx, edi
push dword [ebp - 0x6a5]
push 0xd
call fcn.004639e0
mov edi, eax
mov edx, dword [edi + 0x14]
mov eax, edx
mov ecx, dword [edi + 0x10]
sub eax, ecx
cmp eax, 2
jb 0x466382
lea eax, [ecx + 2]
mov dword [edi + 0x10], eax
mov eax, edi
cmp edx, 0x10
jb 0x466369
mov eax, dword [edi]
push 2
lea esi, [eax + ecx]
push 0x7e7344
push esi
call fcn.0070d750
add esp, 0xc
mov byte [esi + 2], 0
jmp 0x4663a1
push 2
push 0x7e7344
mov byte [ebp - 0x6a5], 0
mov ecx, edi
push dword [ebp - 0x6a5]
push 2
call fcn.004639e0
mov edi, eax
mov edx, 0x1f0
lea ecx, [ebp - 0x2b]
call fcn.0046eeb0
mov ecx, eax
mov dword [ebp - 0x678], 0
lea eax, [ebp - 0x2b]
mov dword [ebp - 0x674], 0xf
mov byte [ebp - 0x688], 0
cmp ecx, eax
je 0x4663e1
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x688]
call fcn.00460f20
lea eax, [ebp - 0x688]
mov byte [ebp - 4], 0xe
push eax
mov ecx, edi
call fcn.00463880
mov edi, eax
mov edx, dword [edi + 0x14]
mov eax, edx
mov ecx, dword [edi + 0x10]
sub eax, ecx
cmp eax, 2
jb 0x46642c
lea eax, [ecx + 2]
mov dword [edi + 0x10], eax
mov eax, edi
cmp edx, 0x10
jb 0x466413
mov eax, dword [edi]
push 2
lea esi, [eax + ecx]
push 0x7e7348
push esi
call fcn.0070d750
add esp, 0xc
mov byte [esi + 2], 0
jmp 0x46644b
push 2
push 0x7e7348
mov byte [ebp - 0x6a5], 0
mov ecx, edi
push dword [ebp - 0x6a5]
push 2
call fcn.004639e0
mov edi, eax
mov edx, dword [edi + 0x14]
mov eax, edx
mov ecx, dword [edi + 0x10]
sub eax, ecx
cmp eax, 0x11
jb 0x466482
lea eax, [ecx + 0x11]
mov dword [edi + 0x10], eax
mov eax, edi
cmp edx, 0x10
jb 0x466469
mov eax, dword [edi]
push 0x11
lea esi, [eax + ecx]
push 0x7e734c
push esi
call fcn.0070d750
add esp, 0xc
mov byte [esi + 0x11], 0
jmp 0x4664a1
push 0x11
push 0x7e734c
mov byte [ebp - 0x6a5], 0
mov ecx, edi
push dword [ebp - 0x6a5]
push 0x11
call fcn.004639e0
mov edi, eax
cmp dword [edi + 0x14], 0x10
jb 0x4664a9
mov edi, dword [edi]
mov ecx, dword [ebp - 0x6b0]
lea eax, [ebp - 0x6c4]
push eax
push edi
push 4
sub esp, 0xc
mov dword [ebp - 0x20], 0x8048bc
mov eax, esp
mov dword [ebp - 0x1c], 0
movq xmm0, qword [ebp - 0x20]
movq qword [eax], xmm0
mov dword [eax + 8], 0x8048bc
call fcn.00466f00
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x674]
cmp edx, 0x10
jb 0x46651f
mov ecx, dword [ebp - 0x688]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x466515
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x466612
push edx
push ecx
call fcn.006f4f2f
add esp, 8
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x65c]
cmp edx, 0x10
jb 0x46655d
mov ecx, dword [ebp - 0x670]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x466553
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x466617
push edx
push ecx
call fcn.006f4f2f
add esp, 8
mov dword [ebp - 0x660], 0
mov dword [ebp - 0x65c], 0xf
mov byte [ebp - 0x670], 0
mov esi, dword [ebp - 0x6ac]
mov byte [ebp - 4], 0xf
test esi, esi
je 0x4665a4
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x4665a4
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], ebx
dec ebx
jne 0x4665a4
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov edx, dword [ebp - 0x68c]
cmp edx, 0x10
jb 0x4665da
mov ecx, dword [ebp - 0x6a0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4665d0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46661c
push edx
push ecx
call fcn.006f4f2f
add esp, 8
mov al, byte [ebp - 0x6a1]
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 0xc
call fcn.00710a9c
call fcn.00710a9c
call fcn.00710a9c
call fcn.00710a9c
call fcn.00710a9c
call fcn.00710a9c
call fcn.00710a9c
int3