Function at 0x41cb40
Capabilities:
Copy file
Delete file
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b69b6
mov eax, dword fs:[0]
push eax
sub esp, 0xbc
mov eax, dword [0x4faee4]
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 + 0xc]
mov edi, dword [ebp + 8]
mov ecx, edi
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebx + 0xd0]
mov dword [ebp - 0xa8], edi
mov esi, dword [eax]
call fcn.0042e730
push eax
push str.done_downloading_file__s_n
push dword [ebx + 0xd0]
call dword [esi + 0x18]
add esp, 0xc
lea ecx, [ebp - 0x70]
call fcn.0042e380
push str..uploading
lea eax, [ebp - 0x40]
mov dword [ebp - 4], 0
push edi
push eax
call fcn.0042f670
add esp, 0xc
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0xb8]
mov byte [ebp - 0xa9], 0
mov edx, dword [eax + 0x10]
mov ecx, dword [eax + 0xc]
cmp edx, ecx
jae 0x41d30d
sub ecx, edx
je 0x41d30d
push 4
lea ecx, [ebp - 0xb4]
push ecx
mov ecx, eax
call fcn.00436390
lea ecx, [ebp - 0x40]
mov byte [ebp - 0xa1], 0
call fcn.0042e720
push eax
call fcn.00431640
mov esi, dword [ebp - 0xb4]
add esp, 4
test al, al
je 0x41cc43
push esi
lea eax, [ebp - 0x40]
mov byte [ebp - 0xa1], 1
push eax
lea eax, [ebp - 0x28]
mov ecx, ebx
push eax
call fcn.0041d6f0
mov byte [ebp - 4], 2
jmp 0x41cc6f
mov ecx, edi
call fcn.0042e720
push eax
call fcn.00431640
add esp, 4
test al, al
je 0x41cc93
push esi
push edi
lea eax, [ebp - 0x28]
mov byte [ebp - 0xa1], 0
push eax
mov ecx, ebx
call fcn.0041d6f0
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x70]
call fcn.0042e460
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x41ccbd
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.004046a0
jmp 0x41ccbd
mov eax, dword [ebx + 0xd0]
lea ecx, [ebp - 0x40]
mov esi, dword [eax]
call fcn.0042e730
push eax
mov ecx, edi
call fcn.0042e730
push eax
push str.couldnt_finalize_not_existing_files:__s___s_n
push dword [ebx + 0xd0]
call dword [esi + 8]
add esp, 0x10
mov ecx, dword [ebp - 0xb8]
lea eax, [ebp - 0xa0]
push eax
call fcn.00436490
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0xb8]
push eax
call fcn.00436490
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x88]
mov eax, dword [ebx + 0xd0]
mov esi, dword [eax]
call fcn.0042e730
push eax
lea ecx, [ebp - 0xa0]
call fcn.0042e730
push eax
push str.creation_time_is__s__modification_time__s_n
push dword [ebx + 0xd0]
call dword [esi + 0x18]
add esp, 0x10
lea eax, [ebp - 0xa0]
lea ecx, [ebp - 0xc0]
push eax
call fcn.004371d0
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0xc8]
call fcn.004371d0
mov ecx, dword [ebp - 0xb8]
lea eax, [ebp - 0x58]
push eax
call fcn.00436490
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 6
call fcn.0042eac0
cmp eax, 0x18
mov eax, dword [ebx + 0xd0]
mov ecx, dword [eax]
jne 0x41d257
push str.Hash_present._Checking...__n
push eax
call dword [ecx + 8]
add esp, 8
lea eax, [ebp - 0x70]
lea ecx, [ebp - 0x58]
push eax
call fcn.0042f320
test al, al
je 0x41cde0
cmp byte [ebp - 0xa1], 0
je 0x41cde0
mov eax, dword [ebx + 0xd0]
push str.BAD_Hash_present._Calculating_hash_of_tmp_file_again...__n
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
add esp, 8
lea eax, [ebp - 0x40]
lea ecx, [ebx + 0xd8]
push eax
call fcn.0041d8d0
push dword [ebp - 0xb4]
lea eax, [ebp - 0x40]
mov ecx, ebx
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0041d6f0
push eax
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 7
call fcn.0042e460
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 6
call fcn.00403230
mov eax, dword [ebx + 0xd0]
lea ecx, [ebp - 0x70]
mov esi, dword [eax]
call fcn.0042e730
push eax
lea ecx, [ebp - 0x58]
call fcn.0042e730
push eax
push str.Hash_server:___s___local:___s__n
push dword [ebx + 0xd0]
call dword [esi + 8]
add esp, 0x10
lea eax, [ebp - 0x70]
lea ecx, [ebp - 0x58]
push eax
call fcn.0042f320
test al, al
mov eax, dword [ebx + 0xd0]
je 0x41ce78
mov edx, dword [eax]
push str.Hash_is_invalid._Cancel_upload._n
push eax
call dword [edx + 8]
mov ecx, dword [ebp - 0xb0]
lea eax, [ebp - 0xa8]
add esp, 8
mov dword [ebp - 0xa8], 0xfffffff7
push str.Hash_is_invalid._Cancel_upload.
push eax
call fcn.00436d60
mov ecx, eax
call fcn.00436e70
cmp byte [ebp - 0xa1], 0
je 0x41d28b
lea ecx, [ebp - 0x40]
call fcn.0042e720
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x41d28b
mov ecx, dword [eax]
push str.Hash_valid._n
push eax
call dword [ecx + 8]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [ebp - 0xc8]
add esp, 8
mov ecx, ebx
cmp byte [ebp - 0xa1], 0
push eax
lea eax, [ebp - 0xc0]
push eax
push dword [ebp - 0xb4]
je 0x41ceda
lea eax, [ebp - 0x40]
push eax
call fcn.0041d480
test al, al
jne 0x41cfd1
call esi
push eax
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0x28]
push eax
call fcn.00430cb0
add esp, 8
mov byte [ebp - 4], 8
jmp 0x41cfa4
push edi
call fcn.0041d480
mov byte [ebp - 0xa1], al
test al, al
jne 0x41d292
call esi
cmp eax, 0x20
jne 0x41d215
mov eax, dword [ebx + 0xd0]
lea ecx, [ebp - 0x40]
mov esi, dword [eax]
call fcn.0042e730
push eax
mov ecx, edi
call fcn.0042e730
push eax
push str.copy_file__s____s_...__n
push dword [ebx + 0xd0]
call dword [esi + 0x18]
add esp, 0x10
lea ecx, [ebp - 0x40]
push 0
call fcn.0042e720
push eax
mov ecx, edi
call fcn.0042e720
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
cmp eax, 1
sete al
mov byte [ebp - 0xa1], al
test al, al
je 0x41d171
mov eax, dword [ebx + 0xd0]
push str._tsuccess_n
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
add esp, 8
lea eax, [ebp - 0xc8]
mov ecx, ebx
push eax
lea eax, [ebp - 0xc0]
push eax
push dword [ebp - 0xb4]
lea eax, [ebp - 0x40]
push eax
call fcn.0041d480
test al, al
jne 0x41cfd1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0x28]
push eax
call fcn.00430cb0
add esp, 8
mov byte [ebp - 4], 9
mov ecx, eax
call fcn.0042e730
mov ecx, dword [ebp - 0xb0]
push eax
lea eax, [ebp - 0xa8]
push eax
call fcn.00436d10
mov ecx, eax
call fcn.00436e70
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 6
call fcn.00403230
mov eax, dword [ebx + 0xd0]
mov ecx, edi
mov esi, dword [eax]
call fcn.0042e730
push eax
lea ecx, [ebp - 0x40]
call fcn.0042e730
push eax
push str.renaming__s_to__s..._n
push dword [ebx + 0xd0]
call dword [esi + 0x18]
add esp, 0x10
mov ecx, edi
push 0x80
call fcn.0042e720
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push 9
mov ecx, edi
call fcn.0042e720
push eax
lea ecx, [ebp - 0x40]
call fcn.0042e720
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
cmp eax, 1
sete al
mov byte [ebp - 0xa1], al
test al, al
jne 0x41d158
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00430cb0
add esp, 8
mov byte [ebp - 4], 0xd
mov ecx, dword [ebx + 0xd0]
mov esi, dword [ecx]
mov ecx, eax
call fcn.0042e730
push eax
push str.unable_to_move_file__error:__s_n_try_to_move_after_reboot_n
push dword [ebx + 0xd0]
call dword [esi + 8]
add esp, 0xc
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x28]
call fcn.00403230
push 0xd
mov ecx, edi
call fcn.0042e720
push eax
lea ecx, [ebp - 0x40]
call fcn.0042e720
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
jne 0x41d133
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00430cb0
add esp, 8
mov byte [ebp - 4], 0xe
mov ecx, dword [ebx + 0xd0]
mov esi, dword [ecx]
mov ecx, eax
call fcn.0042e730
push eax
push str.unable_to_move_file_until_reboot__n_s_n
push dword [ebx + 0xd0]
call dword [esi + 8]
add esp, 0xc
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x28]
call fcn.00403230
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
mov dword [ebp - 0xa8], eax
call esi
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00430cb0
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0xf
call fcn.0042e730
mov ecx, dword [ebp - 0xb0]
push eax
lea eax, [ebp - 0xa8]
push eax
call fcn.00436d10
mov ecx, eax
call fcn.00436e70
lea ecx, [ebp - 0x28]
call fcn.00403230
jmp 0x41d292
mov ecx, dword [ebp - 0xb0]
lea eax, [ebp - 0xa9]
push eax
mov byte [ebp - 0xa1], 1
mov byte [ebp - 0xa9], 1
call fcn.00436b80
jmp 0x41d292
mov eax, dword [ebx + 0xd0]
push str.move_success_n
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
add esp, 8
jmp 0x41d292
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
lea eax, [ebp - 0x28]
push edi
push eax
call fcn.00430cb0
add esp, 8
mov byte [ebp - 4], 0xa
mov ecx, dword [ebx + 0xd0]
mov esi, dword [ecx]
mov ecx, eax
call fcn.0042e730
push eax
push edi
lea ecx, [ebp - 0x40]
call fcn.0042e730
mov ecx, dword [ebp - 0xa8]
push eax
call fcn.0042e730
push eax
push str.error:_unable_to_copy_file__s____s__nerror:__d_____s_n
push dword [ebx + 0xd0]
call dword [esi + 0x18]
add esp, 0x18
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x28]
call fcn.00403230
lea eax, [ebp - 0x28]
mov dword [ebp - 0xb8], edi
push edi
push eax
call fcn.00430cb0
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0xb
call fcn.0042e730
mov ecx, dword [ebp - 0xb0]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.00436d10
mov ecx, eax
call fcn.00436e70
lea ecx, [ebp - 0x28]
call fcn.00403230
mov edi, dword [ebp - 0xa8]
jmp 0x41d292
push eax
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0x28]
push eax
call fcn.00430cb0
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0xc
call fcn.0042e730
mov ecx, dword [ebp - 0xb0]
push eax
lea eax, [ebp - 0xa8]
push eax
call fcn.00436d10
mov ecx, eax
call fcn.00436e70
lea ecx, [ebp - 0x28]
call fcn.00403230
jmp 0x41d292
push str.Hash_not_present._n
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0xb0]
lea eax, [ebp - 0xa8]
add esp, 8
mov dword [ebp - 0xa8], 0xfffffff7
push str.Hash_not_present
push eax
call fcn.00436d60
mov ecx, eax
call fcn.00436e70
mov byte [ebp - 0xa1], 0
mov eax, dword [ebp - 0x44]
cmp eax, 0x10
jb 0x41d2a7
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.004046a0
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x44], 0xf
mov dword [ebp - 0x48], 0
mov byte [ebp - 0x58], 0
cmp eax, 0x10
jb 0x41d2d4
inc eax
lea ecx, [ebp - 0x88]
push eax
push dword [ebp - 0x88]
call fcn.004046a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x74], 0xf
mov dword [ebp - 0x78], 0
mov byte [ebp - 0x88], 0
cmp eax, 0x10
jb 0x41d350
inc eax
lea ecx, [ebp - 0xa0]
push eax
push dword [ebp - 0xa0]
call fcn.004046a0
jmp 0x41d350
mov eax, dword [ebx + 0xd0]
push str.File_data__attrs__mtime__ctime__hash__not_present._n
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov ecx, dword [ebp - 0xb0]
lea eax, [ebp - 0xa8]
add esp, 8
mov dword [ebp - 0xa8], 0xfffffffd
push str.File_data_not_present
push eax
call fcn.00436d60
mov ecx, eax
call fcn.00436e70
mov byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x40]
push ecx
lea ecx, [ebp - 0xc0]
push ecx
lea ecx, [ebx + 0xd8]
call fcn.0041dec0
mov eax, dword [ebp - 0xc0]
mov esi, dword [ebp - 0xbc]
mov dword [ebp - 0xa8], eax
cmp eax, esi
je 0x41d399
nop dword [eax]
lea ecx, [ebp - 0xa8]
call fcn.00411260
cmp dword [ebp - 0xa8], esi
jne 0x41d380
mov eax, dword [ebp - 0xc0]
push esi
push eax
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebx + 0xd8]
call fcn.0041d930
push edi
lea eax, [ebp - 0xc0]
push eax
lea ecx, [ebx + 0xd8]
call fcn.0041dec0
mov edi, dword [ebp - 0xc0]
mov esi, dword [ebp - 0xbc]
mov dword [ebp - 0xa8], edi
cmp edi, esi
je 0x41d3f3
nop word [eax + eax]
lea ecx, [ebp - 0xa8]
call fcn.00411260
cmp dword [ebp - 0xa8], esi
jne 0x41d3e0
push esi
push edi
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebx + 0xd8]
call fcn.0041d930
mov eax, dword [ebx + 0xd0]
push str.done_n
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [ebp - 0x2c]
add esp, 8
cmp eax, 0x10
jb 0x41d430
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.004046a0
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
cmp eax, 0x10
jb 0x41d457
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.004046a0
mov al, byte [ebp - 0xa1]
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.00464228
mov esp, ebp
pop ebp
ret 0xc