Function at 0x44e8e0
Capabilities:
Copy file

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x90
mov rbx, rcx
mov rdi, rdx
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
lea rax, [rbx + 0x240]
xor edx, edx
mov r9, qword [0x00826870]
mov qword [rsp + 0x20], rax
mov r8d, 1
mov rcx, qword [0x008265d0]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x44eb75
mov rbp, qword [0x00828c60]
lea rsi, [0x0080e8f0]
mov rcx, qword [rbx + 0x240]
mov rdx, qword [rbp + 0x2600]
mov rax, qword [rcx]
test rdx, rdx
cmove rdx, rsi
call qword [rax + 0x28]
mov rcx, qword [rbx + 0x240]
mov r9d, 0
mov edx, 1
mov r8, qword [rbp + 0x2618]
mov rax, qword [rcx]
test r8, r8
cmove r8, rsi
mov rax, qword [rax + 0x50]
mov qword [rsp + 0x20], 0
call rax
mov rcx, qword [rbx + 0x240]
xor r8d, r8d
mov rdx, rdi
mov r9d, 2
mov rax, qword [rcx]
mov qword [rsp + 0x20], 0
call qword [rax + 0x18]
test eax, eax
js 0x44eb75
mov rax, qword [rbx + 0x250]
mov dword [rbx + 0x278], 0
sub rax, qword [rbx + 0x248]
sar rax, 5
test rax, rax
je 0x44eb67
mov rbp, qword [sym.imp.KERNEL32.dll_CopyFileExW]
lea r12, [rsp + 0x70]
xor ecx, ecx
lea rdi, [r12 + 0x10]
lea r13, [rsp + 0x50]
shl rcx, 5
mov rsi, rcx
add rsi, qword [rbx + 0x260]
lea rcx, [0x0080ea30]
call sub.msvcrt.dll_wcslen
lea rdx, [0x0080ea30]
mov r8, 0xffffffffffffffff
mov rcx, rsi
mov r9, rax
call fcn.00716550
mov edx, dword [rbx + 0x278]
mov qword [rsp + 0x70], rdi
shl rdx, 5
add rdx, qword [rbx + 0x260]
mov r14, qword [rdx]
cmp qword [rdx + 8], rax
cmovbe rax, qword [rdx + 8]
lea rsi, [rax + rax]
mov rax, r14
add rax, rsi
je 0x44ea63
test r14, r14
jne 0x44ea63
lea rcx, [0x0080e918]
call fcn.007cd620
mov rdx, rsi
sar rdx, 1
cmp rdx, 7
mov rax, rdx
mov qword [rsp + 0x50], rdx
ja 0x44eb90
cmp rax, 1
je 0x44ebd0
test rdx, rdx
mov rcx, rdi
jne 0x44ebb3
xor r9d, r9d
mov qword [rsp + 0x78], rax
mov word [rcx + rax*2], r9w
call fcn.0043f300
mov eax, dword [rbx + 0x278]
lea r8, [0x0044e810]
xor r9d, r9d
mov rdx, qword [rbx + 0x260]
mov rcx, qword [rbx + 0x248]
shl rax, 5
mov rdx, qword [rdx + rax]
mov rcx, qword [rcx + rax]
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call rbp
test eax, eax
je 0x44ebe4
mov eax, dword [rbx + 0x278]
mov rcx, qword [0x00826970]
mov rsi, qword [rbx + 0x290]
shl rax, 5
add rax, qword [rbx + 0x248]
mov rdx, qword [rax]
call fcn.0043e8a0
mov rcx, qword [rbx + 0x240]
add rsi, rax
mov qword [rbx + 0x290], rsi
mov rax, qword [rcx]
call qword [rax + 0x38]
test eax, eax
mov rcx, qword [rsp + 0x70]
jne 0x44ed84
cmp rcx, rdi
je 0x44eb3d
call fcn.007da050
mov eax, dword [rbx + 0x278]
lea ecx, [rax + 1]
mov rax, qword [rbx + 0x250]
sub rax, qword [rbx + 0x248]
mov dword [rbx + 0x278], ecx
sar rax, 5
cmp rcx, rax
jb 0x44e9f1
mov rcx, qword [rbx + 0x240]
mov rax, qword [rcx]
call qword [rax + 0x20]
nop
add rsp, 0x90
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov rcx, r12
xor r8d, r8d
mov rdx, r13
call fcn.0079f8b0
mov rcx, rax
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x80], rax
mov r8, rsi
mov rdx, r14
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
jmp 0x44ea91
movzx edx, word [r14]
mov rcx, rdi
mov word [rsp + 0x80], dx
jmp 0x44ea91
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x70]
mov edi, eax
lea rax, [r12 + 0x10]
cmp rcx, rax
je 0x44ec00
call fcn.007da050
mov rcx, qword [rbx + 0x240]
mov rax, qword [rcx]
call qword [rax + 0x20]
test edi, edi
je 0x44eb75
lea rbx, [rsp + 0x30]
lea rax, [rbx + 0x10]
lea rcx, str.Copy_failed_with_error
mov qword [rsp + 0x30], rax
call sub.msvcrt.dll_wcslen
lea rsi, [rax + rax]
mov rdx, rsi
sar rdx, 1
cmp rdx, 7
mov qword [rsp + 0x70], rdx
ja 0x44ed99
cmp rdx, 1
mov rcx, qword [rsp + 0x30]
je 0x44edd7
test rdx, rdx
jne 0x44edb9
lea rsi, [rsp + 0x50]
xor r8d, r8d
mov qword [rsp + 0x38], rdx
lea r9, [0x0080ea68]
mov word [rcx + rdx*2], r8w
mov rcx, rsi
mov r8d, 0x10
mov dword [rsp + 0x20], edi
lea rdx, [0x0044c2c0]
call fcn.0044c790
lea rcx, [0x0080e9bc]
call sub.msvcrt.dll_wcslen
movabs rdx, 0x3fffffffffffffff
sub rdx, qword [rsp + 0x58]
mov r8, rax
cmp rax, rdx
ja 0x44ee34
lea rdx, [0x0080e9bc]
mov rcx, rsi
call fcn.0079f760
lea rdx, [r12 + 0x10]
mov qword [rsp + 0x70], rdx
mov rcx, qword [rax]
lea rdx, [rax + 0x10]
cmp rcx, rdx
je 0x44ede6
mov qword [rsp + 0x70], rcx
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x80], rcx
mov rcx, qword [rax + 8]
mov qword [rsp + 0x78], rcx
mov rcx, rbx
mov qword [rax], rdx
xor edx, edx
mov qword [rax + 8], 0
mov r8, qword [rsp + 0x78]
mov word [rax + 0x10], dx
mov rdx, qword [rsp + 0x70]
call fcn.0079f760
mov rcx, qword [rsp + 0x70]
add r12, 0x10
cmp rcx, r12
je 0x44ed32
call fcn.007da050
mov rcx, qword [rsp + 0x50]
add rsi, 0x10
cmp rcx, rsi
je 0x44ed45
call fcn.007da050
mov rax, qword [0x00826920]
mov r9d, 0x10
lea r8, str.Create_USB_Drive
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rax + 0x50]
call qword [sym.imp.USER32.dll_MessageBoxW]
mov rcx, qword [rsp + 0x30]
add rbx, 0x10
cmp rcx, rbx
je 0x44eb75
call fcn.007da050
jmp 0x44eb75
lea rax, [r12 + 0x10]
xor edi, edi
cmp rcx, rax
jne 0x44ebfb
jmp 0x44eb67
mov rcx, rbx
xor r8d, r8d
mov rdx, r12
call fcn.0079f8b0
mov rcx, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x40], rax
lea rdx, str.Copy_failed_with_error
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x30]
jmp 0x44ec60
movzx eax, word [str.Copy_failed_with_error]
mov word [rcx], ax
jmp 0x44ec60
mov r9, qword [rax + 0x10]
mov r10, qword [rax + 0x18]
mov qword [rsp + 0x80], r9
mov qword [rsp + 0x88], r10
jmp 0x44ecf3
mov rcx, qword [rsp + 0x30]
add rbx, 0x10
cmp rcx, rbx
je 0x44ee2c
call fcn.007da050
mov rcx, rdi
call fcn.0067d310
lea rcx, [0x0080e964]
call fcn.007cd940
mov rdi, rax
jmp 0x44ee19