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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x73d172
mov eax, dword fs:[0]
push eax
sub esp, 0x680
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 eax, dword [ebp + 8]
mov ecx, eax
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x678], eax
mov byte [ebp - 0x671], 0
call fcn.00461b90
test al, al
je 0x48082f
push 0x208
xor esi, esi
lea eax, [ebp - 0x230]
push esi
push eax
call fcn.0070dcd0
push 0x208
lea eax, [ebp - 0x438]
push esi
push eax
call fcn.0070dcd0
mov ebx, dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x230]
add esp, 0x18
push edi
push 0x7ee034
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 0x7ee05c
push eax
call fcn.0045b740
add esp, 0x1c
lea eax, [ebp - 0x640]
push eax
push 0x7ee06c
lea eax, [ebp - 0x438]
push eax
call ebx
lea ecx, [ebp - 0x438]
call fcn.00461d90
test al, al
jne 0x48028c
lea eax, [ebp - 0x438]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00715cc1
add esp, 8
test eax, eax
je 0x4803a8
cmp esi, 0xa
jl 0x480220
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x4802b3
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 - 0x678]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x4803fb
call fcn.0046efe0
mov edi, dword [eax + 8]
test edi, edi
je 0x4802f0
lock inc dword [edi + 4]
mov edi, dword [eax + 8]
mov ebx, dword [eax + 4]
or esi, 0xffffffff
mov dword [ebp - 4], 5
test edi, edi
je 0x480320
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x480320
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x480320
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
test ebx, ebx
je 0x48082f
call fcn.0046efe0
lea ecx, [ebp - 0x688]
push ecx
mov ecx, eax
call fcn.0046f080
mov dword [ebp - 4], 6
mov edi, dword [eax]
mov dword [ebp - 0x660], 0
mov dword [ebp - 0x65c], 0xf
mov byte [ebp - 0x670], 0
push 0x7ee160
lea ecx, [ebp - 0x670]
mov byte [ebp - 4], 7
call fcn.00463b90
push 0x5c
push 0x7ee164
mov ebx, eax
call fcn.0070c820
add esp, 8
test eax, eax
je 0x48068e
push 0x5c
push 0x7ee198
call fcn.0070c820
add esp, 8
inc eax
jmp 0x480693
lea ecx, [ebp - 0x230]
call fcn.00462d80
push 1
lea eax, [ebp - 0x230]
push eax
push dword [ebp - 0x678]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x480402
lea eax, [ebp - 0x438]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x4803ee
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 al, 1
jmp 0x480835
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x438]
push eax
call fcn.00715cc1
add esp, 8
call fcn.0046efe0
mov edi, dword [eax + 8]
test edi, edi
je 0x48042b
lock inc dword [edi + 4]
mov edi, dword [eax + 8]
mov ebx, dword [eax + 4]
or esi, 0xffffffff
mov dword [ebp - 4], 0
test edi, edi
je 0x48045b
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x48045b
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x48045b
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
test ebx, ebx
je 0x48082f
call fcn.0046efe0
lea ecx, [ebp - 0x67c]
push ecx
mov ecx, eax
call fcn.0046f080
mov dword [ebp - 4], 1
mov edi, dword [eax]
mov dword [ebp - 0x648], 0
mov dword [ebp - 0x644], 0xf
mov byte [ebp - 0x658], 0
push 0x7ee094
lea ecx, [ebp - 0x658]
mov byte [ebp - 4], 2
call fcn.00463b90
push 0x5c
push 0x7ee098
mov ebx, eax
call fcn.0070c820
add esp, 8
test eax, eax
je 0x4804dc
push 0x5c
push 0x7ee0cc
call fcn.0070c820
add esp, 8
inc eax
jmp 0x4804e1
mov eax, 0x7ee100
push eax
mov ecx, ebx
call fcn.00463b90
push 0x7ee134
mov ecx, eax
call fcn.00463b90
push 0x7ee138
mov ecx, eax
call fcn.00463b90
push 0x7ee148
mov ecx, eax
call fcn.00463b90
mov edx, 0x1f9
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 0x48054f
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, ebx
call fcn.00463880
push 0x7ee14c
mov ecx, eax
call fcn.00463b90
push 0x7ee150
mov ecx, eax
call fcn.00463b90
cmp dword [eax + 0x14], 0x10
jb 0x480581
mov eax, dword [eax]
push eax
push 4
sub esp, 0xc
mov dword [ebp - 0x68c], 0x8048bc
mov eax, esp
mov dword [ebp - 0x688], 0
movq xmm0, qword [ebp - 0x68c]
mov ecx, edi
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 0x4805f5
mov ecx, dword [ebp - 0x670]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4805eb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x480853
push edx
push ecx
call fcn.006f4f2f
add esp, 8
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x644]
cmp edx, 0x10
jb 0x480633
mov ecx, dword [ebp - 0x658]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x480629
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x480858
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 dword [ebp - 4], 4
mov edi, dword [ebp - 0x678]
test edi, edi
je 0x48082f
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x48082f
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], esi
dec esi
jne 0x48082f
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
jmp 0x48082f
mov eax, 0x7ee1cc
push eax
mov ecx, ebx
call fcn.00463b90
push 0x7ee200
mov ecx, eax
call fcn.00463b90
push str.RepairOneFile
mov ecx, eax
call fcn.00463b90
push 0x7ee214
mov ecx, eax
call fcn.00463b90
mov edx, 0x205
lea ecx, [ebp - 0x13]
mov ebx, eax
call fcn.0046eeb0
mov ecx, eax
mov dword [ebp - 0x648], 0
lea eax, [ebp - 0x13]
mov dword [ebp - 0x644], 0xf
mov byte [ebp - 0x658], 0
cmp ecx, eax
je 0x480701
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x658]
call fcn.00460f20
lea eax, [ebp - 0x658]
mov byte [ebp - 4], 8
push eax
mov ecx, ebx
call fcn.00463880
push 0x7ee218
mov ecx, eax
call fcn.00463b90
push 0x7ee21c
mov ecx, eax
call fcn.00463b90
cmp dword [eax + 0x14], 0x10
jb 0x480733
mov eax, dword [eax]
push eax
push 4
sub esp, 0xc
mov dword [ebp - 0x680], 0x8048bc
mov eax, esp
mov dword [ebp - 0x67c], 0
movq xmm0, qword [ebp - 0x680]
mov ecx, edi
movq qword [eax], xmm0
mov dword [eax + 8], 0x8048bc
call fcn.0046ec20
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x644]
cmp edx, 0x10
jb 0x4807a7
mov ecx, dword [ebp - 0x658]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x48079d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48085d
push edx
push ecx
call fcn.006f4f2f
add esp, 8
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x65c]
cmp edx, 0x10
jb 0x4807e5
mov ecx, dword [ebp - 0x670]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4807db
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x480862
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 dword [ebp - 4], 9
mov edi, dword [ebp - 0x684]
test edi, edi
je 0x48082f
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x48082f
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], esi
dec esi
jne 0x48082f
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 4]
mov al, byte [ebp - 0x671]
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