Function at 0x43082e
Capabilities:
Copy file
Delete file
Move file

Disassembly:
push 0x50
mov eax, 0x48024b
call fcn.004542d2
mov ebx, ecx
and dword [ebp - 0x14], 0
lea ecx, [ebp - 0x10]
call fcn.0040aa2d
and dword [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.0040aa2d
xor eax, eax
inc eax
mov byte [ebp - 4], al
push ecx
lea ecx, [ebp - 0x5c]
call fcn.00435951
mov byte [ebp - 4], 2
lea eax, [ebp - 0x14]
push eax
push str.HandleFiles
lea ecx, [ebp - 0x38]
call fcn.0041e3a4
mov byte [ebp - 4], 3
mov eax, dword [ebx + 0x18]
mov esi, dword [eax]
cmp esi, eax
je 0x430aaf
cmp byte [esi + 0x14], 0
jne 0x4308cb
cmp byte [esi + 0x15], 0
jne 0x430a52
cmp byte [esi + 0x16], 0
je 0x4308d7
cmp byte [esi + 0x17], 0
je 0x4308cb
mov ecx, dword [esi + 0x10]
call fcn.0041facf
test al, al
je 0x4308c5
push dword [esi + 0xc]
push dword [esi + 0x10]
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x430a7f
xor eax, eax
inc eax
mov byte [esi + 0x14], al
mov esi, dword [esi]
cmp esi, dword [ebx + 0x18]
jne 0x430889
jmp 0x430aaf
mov edi, dword [esi + 8]
lea ecx, [ebp - 0x1c]
and dword [ebp - 0x24], 0
call fcn.0040aa2d
mov byte [ebp - 4], 4
mov byte [ebp - 0x20], 0
test edi, edi
jne 0x4308f7
push 0x57
pop edi
jmp 0x430943
push edi
lea ecx, [ebp - 0x1c]
call fcn.0040a5c2
lea ecx, [ebp - 0x1c]
call fcn.0040936e
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebx + 0x50]
call fcn.00431c43
mov eax, dword [eax]
cmp eax, dword [ebx + 0x50]
je 0x430940
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x43092f
cmp ecx, 0xffffffff
je 0x430940
dec ecx
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 0x20]
test ecx, ecx
push 1
movzx eax, al
pop ecx
cmove eax, ecx
mov dword [ebp - 0x20], eax
mov edi, dword [ebp - 0x24]
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.0040aa0b
mov dword [ebp - 0x14], edi
test edi, edi
jne 0x430c1e
cmp byte [esi + 0x17], 0
je 0x43098d
mov ecx, dword [esi + 0x10]
call fcn.0041facf
test al, al
je 0x430983
push dword [esi + 0xc]
push dword [esi + 0x10]
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x430a7f
xor eax, eax
inc eax
mov byte [esi + 0x14], al
push 0x10
jmp 0x43098f
push 0xc
pop edi
lea eax, [esi + 8]
push eax
lea ecx, [ebp - 0x10]
call fcn.0040943e
lea eax, [edi + esi]
push eax
lea ecx, [ebp - 0x18]
call fcn.0040943e
mov dword [ebp - 0x24], 9
push 0
push dword [ebp - 0x18]
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test edi, edi
jne 0x4309fe
cmp eax, 0x20
je 0x4309d3
cmp eax, 5
jne 0x4309e4
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
sub dword [ebp - 0x24], 1
jns 0x4309af
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
push dword [ebp - 0x10]
push str.Cannot_copy_file__s_____s_gle_u
jmp 0x430a94
xor eax, eax
inc eax
cmp byte [ebp - 0x20], 0
mov byte [esi + 0x14], al
je 0x4308cb
mov dword [ebp - 0x24], 9
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test edi, edi
jne 0x4308cb
cmp eax, 0x20
je 0x430a3c
cmp eax, 5
jne 0x4308cb
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
sub dword [ebp - 0x24], 1
jns 0x430a15
jmp 0x4308cb
cmp byte [esi + 0x17], 0
je 0x4308cb
mov ecx, dword [esi + 0x10]
call fcn.0041f8c8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x4308c5
cmp eax, 0xb7
jne 0x430a9e
and dword [ebp - 0x14], 0
jmp 0x4308cb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov dword [ebp - 0x14], eax
push dword [esi + 0xc]
push dword [esi + 0x10]
push str.Cannot_move_file__s_____s_gle_u
call fcn.0041defb
add esp, 0x10
jmp 0x430aaf
push eax
push dword [esi + 0x10]
push str.Cannot_create_directory__s_gle_u
call fcn.0041defb
add esp, 0xc
cmp dword [ebp - 0x14], 0
jne 0x430c1e
mov eax, dword [ebx + 0x18]
mov esi, dword [eax]
cmp esi, eax
je 0x430c1e
cmp byte [esi + 0x15], 0
jne 0x430c13
cmp byte [esi + 0x16], 0
mov al, byte [esi + 0x17]
jne 0x430b98
lea ecx, [esi + 0xc]
push ecx
lea ecx, [ebp - 0x10]
test al, al
je 0x430b36
call fcn.0040943e
lea ecx, [ebp - 0x18]
call fcn.0040a2b2
mov ecx, dword [ebp - 0x10]
call fcn.0041facf
test al, al
je 0x430b77
xor eax, eax
lea ecx, [eax + 1]
call fcn.0042ff3a
test al, al
jne 0x430b24
push dword [ebp - 0x10]
push str.Reboot_reason_imm:__s
call fcn.0041defb
xor eax, eax
pop ecx
inc eax
pop ecx
mov byte [ebx + 0xe], al
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x2c]
lea ecx, [ebx + 0x68]
push eax
call fcn.0041b543
jmp 0x430b77
call fcn.0040943e
lea eax, [esi + 0x10]
push eax
lea ecx, [ebp - 0x18]
call fcn.0040943e
push dword [ebp - 0x10]
push str.Reboot_reason_non_imm:__s
call fcn.0041defb
pop ecx
pop ecx
push 5
push dword [ebp - 0x18]
xor eax, eax
push dword [ebp - 0x10]
inc eax
mov byte [ebx + 0xe], al
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x430b77
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x430c13
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x10]
push str.Cannot_register_reboot_move_file__s_____s_gle_u
call fcn.0041defb
add esp, 0x10
jmp 0x430c13
test al, al
lea eax, [esi + 0xc]
jne 0x430ba2
lea eax, [esi + 0x10]
push eax
lea ecx, [ebp - 0x10]
call fcn.0040943e
mov ecx, dword [ebp - 0x10]
call fcn.0041facf
test al, al
je 0x430c13
cmp byte [esi + 0x17], 0
je 0x430bdb
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x430bfb
cmp byte [esi + 0x17], al
je 0x430bdb
lea ecx, [eax + 1]
call fcn.0042ff3a
test al, al
jne 0x430bf0
push dword [ebp - 0x10]
push str.Reboot_reason_delete:__s
call fcn.0041defb
xor eax, eax
pop ecx
inc eax
pop ecx
mov byte [ebx + 0xe], al
mov ecx, dword [ebp - 0x10]
call fcn.00421562
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x430c13
push eax
push dword [ebp - 0x10]
push str.Cannot_register_reboot_delete_file__s_gle_u
call fcn.0041defb
add esp, 0xc
mov esi, dword [esi]
cmp esi, dword [ebx + 0x18]
jne 0x430ac6
mov esi, dword [ebp - 0x14]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x38]
call fcn.0041e418
xor eax, eax
inc eax
mov byte [ebp - 4], al
lea ecx, [ebp - 0x5c]
call fcn.00435973
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.0040aa0b
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.0040aa0b
mov eax, esi
call fcn.004542a0
ret