Function at 0x140072ad0
Capabilities:
Copy file

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x208
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x1f0], rax
mov r14, qword [rsp + 0x270]
mov r13d, dword [rsp + 0x278]
movzx esi, byte [rsp + 0x280]
mov r12, rcx
lea rcx, [rsp + 0x80]
mov rdi, r9
mov qword [rsp + 0x78], r9
mov r15d, r8d
mov ebp, edx
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
cmp r15d, ebp
jge 0x140072b5b
lea rcx, [rsp + 0xb0]
xor edx, edx
mov r8d, 0x140
call fcn.1400e27d0
lea rdx, [rsp + 0xb0]
lea rcx, str.cleric
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
lea rdx, str.mirror
lea rcx, str.cleric
mov r8d, r15d
call qword [sym.imp.KERNEL32.dll_CopyFileA]
mov edx, ebp
lea ecx, [r14 + r14*2]
imul edx, r15d
lea ebx, [rdx + rcx*2]
mov dword [rsp + 0x60], eax
sub ebx, edi
add ebx, r12d
call qword [sym.imp.USER32.dll_GetActiveWindow]
movzx ecx, sil
mov qword [rsp + 0x90], rax
mov dword [rsp + 0x68], ecx
imul eax, r12d, 7
sub eax, r14d
sub eax, r13d
add eax, ecx
mov dword [rsp + 0x6c], eax
call qword [sym.imp.USER32.dll_GetActiveWindow]
mov r8d, dword [rsp + 0x60]
imul ebx, r8d
lea r8d, [r8 + r8*8]
mov edx, r14d
mov esi, 9
inc r8d
sub esi, ebx
mov ebx, dword [rsp + 0x68]
imul edx, r15d
mov eax, ebx
imul eax, r13d
lea ecx, [rax + rax*2]
add ecx, ecx
sub edx, ecx
imul edx, r12d
add r8d, edx
mov dword [rsp + 0x64], r8d
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov r8, rax
mov qword [rsp + 0x70], rax
movsxd rax, dword [rsp + 0x64]
cmp eax, ebp
jg 0x140072cf3
mov ecx, dword [rsp + 0x60]
xor edx, edx
lea r8, str.cleric
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x28], eax
lea rdx, str.kazoo
xor r9d, r9d
mov dword [rsp + 0x20], ebp
call qword [sym.imp.USER32.dll_CreateWindowExA]
mov rcx, qword [rsp + 0x70]
lea eax, [rbp + 1]
imul eax, r12d
lea ecx, [rax + rcx*8]
sub ecx, dword [rsp + 0x6c]
add ecx, ebx
mov ebx, dword [rsp + 0x64]
add ecx, r14d
add ebx, 0xfffffff5
add ecx, dword [rsp + 0x90]
add ebx, ecx
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [rsp + 0xb0]
mov edx, 0x104
mov edi, eax
call qword [sym.imp.KERNEL32.dll_FindFirstVolumeA]
call qword [sym.imp.USER32.dll_GetActiveWindow]
lea rcx, str.c0ret
movsxd rbx, ebx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea rdx, str.uniform
mov r9, rbx
mov r8d, edi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EnumResourceNamesA]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov edx, 0x2f
xor ecx, ecx
lea r8d, [rdx - 0x24]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov ecx, 0xffff
call qword [sym.imp.KERNEL32.dll_GetMaximumProcessorCount]
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rdi, qword [rsp + 0x78]
mov ebx, dword [rsp + 0x68]
mov r8, qword [rsp + 0x70]
imul esi, r8d
mov eax, edi
xor r9d, r9d
imul esi, dword [rsp + 0x60]
imul eax, r15d
inc eax
imul eax, r14d
lea ecx, [rsi + rsi*4]
add ecx, ecx
sub ecx, dword [rsp + 0x90]
lea edx, [rax + rcx*4]
lea eax, [r12*4 + 1]
mov rcx, r14
imul eax, r12d
add eax, edx
mov rdx, r14
sub eax, ebx
sub eax, ebp
add eax, 0x1a
add eax, r13d
add eax, r8d
mov r8, rdi
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], r13d
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
lea rax, str.c13a0
mov rcx, qword [rsp + 0x1f0]
xor rcx, rsp
call fcn.1400dd340
add rsp, 0x208
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret