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

Disassembly:
push 0x50
mov eax, 0x481cd3
call fcn.00456992
mov ebx, ecx
and dword [ebp - 0x14], 0
lea ecx, [ebp - 0x10]
call fcn.0040aaed
and dword [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.0040aaed
xor eax, eax
inc eax
mov byte [ebp - 4], al
push ecx
lea ecx, [ebp - 0x5c]
call fcn.004362ad
mov byte [ebp - 4], 2
lea eax, [ebp - 0x14]
push eax
push str.HandleFiles
lea ecx, [ebp - 0x38]
call fcn.0041e6cc
mov byte [ebp - 4], 3
mov eax, dword [ebx + 0x18]
mov esi, dword [eax]
cmp esi, eax
je 0x431508
cmp byte [esi + 0x14], 0
jne 0x431317
cmp byte [esi + 0x15], 0
jne 0x43149a
cmp byte [esi + 0x16], 0
je 0x431323
cmp byte [esi + 0x17], 0
je 0x431317
mov ecx, dword [esi + 0x10]
call fcn.0041feac
test al, al
je 0x431311
push dword [esi + 0xc]
push dword [esi + 0x10]
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x4314c7
xor eax, eax
inc eax
mov byte [esi + 0x14], al
mov esi, dword [esi]
cmp esi, dword [ebx + 0x18]
jne 0x4312d5
jmp 0x431508
mov edi, dword [esi + 8]
lea ecx, [ebp - 0x1c]
and dword [ebp - 0x24], 0
call fcn.0040aaed
mov byte [ebp - 4], 4
mov byte [ebp - 0x20], 0
test edi, edi
jne 0x431343
push 0x57
pop edi
jmp 0x43138f
push edi
lea ecx, [ebp - 0x1c]
call fcn.0040a676
lea ecx, [ebp - 0x1c]
call fcn.0040944e
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebx + 0x50]
call fcn.0043267a
mov eax, dword [eax]
cmp eax, dword [ebx + 0x50]
je 0x43138c
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x43137b
cmp ecx, 0xffffffff
je 0x43138c
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.0040aacb
mov dword [ebp - 0x14], edi
test edi, edi
jne 0x431677
cmp byte [esi + 0x17], 0
je 0x4313d8
lea edi, [esi + 0x10]
mov ecx, dword [edi]
call fcn.0041feac
test al, al
je 0x4313d0
push dword [esi + 0xc]
push dword [edi]
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x4314e6
xor eax, eax
inc eax
mov byte [esi + 0x14], al
jmp 0x4313db
lea edi, [esi + 0xc]
lea eax, [esi + 8]
push eax
lea ecx, [ebp - 0x10]
call fcn.0040951e
push edi
lea ecx, [ebp - 0x18]
call fcn.0040951e
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 0x431446
cmp eax, 0x20
je 0x43141b
cmp eax, 5
jne 0x43142c
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
sub dword [ebp - 0x24], 1
jns 0x4313f7
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 0x4314dc
xor eax, eax
inc eax
cmp byte [ebp - 0x20], 0
mov byte [esi + 0x14], al
je 0x431317
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 0x431317
cmp eax, 0x20
je 0x431484
cmp eax, 5
jne 0x431317
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
sub dword [ebp - 0x24], 1
jns 0x43145d
jmp 0x431317
cmp byte [esi + 0x17], 0
je 0x431317
mov ecx, dword [esi + 0x10]
call fcn.0041fca5
mov dword [ebp - 0x14], eax
test eax, eax
je 0x431311
cmp eax, 0xb7
jne 0x4314f7
and dword [ebp - 0x14], 0
jmp 0x431317
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.0041e1d8
add esp, 0x10
jmp 0x431508
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov dword [ebp - 0x14], eax
push dword [esi + 0xc]
push dword [edi]
jmp 0x4314d7
push eax
push dword [esi + 0x10]
push str.Cannot_create_directory__s_gle_u
call fcn.0041e1d8
add esp, 0xc
cmp dword [ebp - 0x14], 0
jne 0x431677
mov eax, dword [ebx + 0x18]
mov esi, dword [eax]
cmp esi, eax
je 0x431677
cmp byte [esi + 0x15], 0
jne 0x43166c
cmp byte [esi + 0x16], 0
mov al, byte [esi + 0x17]
jne 0x4315f1
lea ecx, [esi + 0xc]
push ecx
lea ecx, [ebp - 0x10]
test al, al
je 0x43158f
call fcn.0040951e
lea ecx, [ebp - 0x18]
call fcn.0040a366
mov ecx, dword [ebp - 0x10]
call fcn.0041feac
test al, al
je 0x4315d0
xor eax, eax
lea ecx, [eax + 1]
call fcn.00430986
test al, al
jne 0x43157d
push dword [ebp - 0x10]
push str.Reboot_reason_imm:__s
call fcn.0041e1d8
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.0041b75b
jmp 0x4315d0
call fcn.0040951e
lea eax, [esi + 0x10]
push eax
lea ecx, [ebp - 0x18]
call fcn.0040951e
push dword [ebp - 0x10]
push str.Reboot_reason_non_imm:__s
call fcn.0041e1d8
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 0x4315d0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x43166c
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x10]
push str.Cannot_register_reboot_move_file__s_____s_gle_u
call fcn.0041e1d8
add esp, 0x10
jmp 0x43166c
test al, al
lea eax, [esi + 0xc]
jne 0x4315fb
lea eax, [esi + 0x10]
push eax
lea ecx, [ebp - 0x10]
call fcn.0040951e
mov ecx, dword [ebp - 0x10]
call fcn.0041feac
test al, al
je 0x43166c
cmp byte [esi + 0x17], 0
je 0x431634
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x431654
cmp byte [esi + 0x17], al
je 0x431634
lea ecx, [eax + 1]
call fcn.00430986
test al, al
jne 0x431649
push dword [ebp - 0x10]
push str.Reboot_reason_delete:__s
call fcn.0041e1d8
xor eax, eax
pop ecx
inc eax
pop ecx
mov byte [ebx + 0xe], al
mov ecx, dword [ebp - 0x10]
call fcn.004219c3
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x43166c
push eax
push dword [ebp - 0x10]
push str.Cannot_register_reboot_delete_file__s_gle_u
call fcn.0041e1d8
add esp, 0xc
mov esi, dword [esi]
cmp esi, dword [ebx + 0x18]
jne 0x43151f
mov esi, dword [ebp - 0x14]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x38]
call fcn.0041e740
xor eax, eax
inc eax
mov byte [ebp - 4], al
lea ecx, [ebp - 0x5c]
call fcn.004362cf
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.0040aacb
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.0040aacb
mov eax, esi
call fcn.00456960
ret