Function at 0x180003b24
Capabilities:
Copy file

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov rax, qword [0x1802e9850]
xor rax, rsp
mov qword [rbp + 0x78], rax
mov rsi, r8
mov r14, rdx
mov r15, rcx
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], r8
call fcn.180099e84
mov rcx, rax
xor r12d, r12d
test rax, rax
je 0x1800042bd
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x70], rax
mov rdx, rsi
lea edi, [r12 + 0x10]
cmp qword [rsi + 0x18], rdi
jb 0x180003b96
mov rdx, qword [rsi]
lea rcx, [rsp + 0x48]
call fcn.1800071a8
mov r8, rax
lea rdx, [rsp + 0x40]
call fcn.180079f38
nop
mov rdx, rax
lea rcx, [rbp + 0x70]
call fcn.180007bc8
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180003bda
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [rbp + 0x30], r12
mov qword [rbp + 0x40], r12
mov r13d, 0xf
mov qword [rbp + 0x48], r13
mov byte [rbp + 0x30], r12b
mov rbx, qword [rbp + 0x70]
mov rdx, rbx
lea rcx, [rbp + 0x30]
call fcn.180008180
nop
mov qword [rbp + 0x50], r12
mov qword [rbp + 0x60], r12
mov qword [rbp + 0x68], r13
mov byte [rbp + 0x50], r12b
mov rdx, rbx
lea rcx, [rbp + 0x50]
call fcn.180008180
nop
lea rdx, [rbp - 0x50]
lea rcx, [rbp + 0x28]
call fcn.1800773a8
nop
mov r8, rax
lea rdx, [rbp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.180009264
lea rcx, [rbp + 0x30]
cmp rcx, rax
je 0x180003c55
mov r8b, r12b
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.180008314
mov r13d, 0x1000
mov rdx, qword [rsp + 0x68]
cmp rdx, rdi
jb 0x180003c93
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, r13
jb 0x180003c8e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042c8
call fcn.18009a21c
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], 0xf
mov byte [rsp + 0x50], r12b
mov rdx, qword [rbp - 0x38]
cmp rdx, rdi
jb 0x180003cdc
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, r13
jb 0x180003cd7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042ce
call fcn.18009a21c
lea rdx, [rbp - 0x30]
call fcn.1800768fc
nop
mov r8, rax
lea rdx, [rbp + 0x50]
lea rcx, [rsp + 0x70]
call fcn.180009264
lea rcx, [rbp + 0x50]
cmp rcx, rax
je 0x180003d0f
mov r8b, r12b
mov rdx, rax
lea rcx, [rbp + 0x50]
call fcn.180008314
mov rdx, qword [rbp - 0x78]
cmp rdx, rdi
jb 0x180003d46
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, r13
jb 0x180003d41
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042d4
call fcn.18009a21c
mov qword [rbp - 0x80], r12
mov qword [rbp - 0x78], 0xf
mov byte [rsp + 0x70], r12b
mov rdx, qword [rbp - 0x18]
cmp rdx, rdi
jb 0x180003d8d
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, r13
jb 0x180003d88
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042da
call fcn.18009a21c
lea rcx, [rbp + 0x30]
cmp qword [rbp + 0x48], rdi
cmovae rcx, qword [rbp + 0x30]
call fcn.180016350
mov rcx, qword [r14 + 0x10]
movabs rax, 0x7fffffffffffffff
mov rdx, qword [rbp + 0x40]
sub rax, rdx
cmp rax, rcx
jb 0x1800042e0
lea r9, [rbp + 0x30]
cmp qword [rbp + 0x48], rdi
cmovae r9, qword [rbp + 0x30]
mov rax, r14
cmp qword [r14 + 0x18], rdi
jb 0x180003dd6
mov rax, qword [r14]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
lea rcx, [rbp - 0x70]
call fcn.180009b34
lea rdx, [rbp - 0x70]
cmp qword [rbp - 0x58], rdi
cmovae rdx, qword [rbp - 0x70]
mov rcx, rsi
cmp qword [rsi + 0x18], rdi
jb 0x180003e07
mov rcx, qword [rsi]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileA]
mov rdx, qword [rbp - 0x58]
cmp rdx, rdi
jb 0x180003e46
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, r13
jb 0x180003e41
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042e6
call fcn.18009a21c
mov rdx, r15
call fcn.180081604
mov rcx, rax
call fcn.18009815c
mov r13, rax
test rax, rax
jne 0x180004001
mov rdx, qword [rbp + 0x68]
mov r13d, 0x1000
cmp rdx, rdi
jb 0x180003e9e
inc rdx
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, r13
jb 0x180003e99
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042f2
call fcn.18009a21c
mov qword [rbp + 0x60], r12
mov qword [rbp + 0x68], 0xf
mov byte [rbp + 0x50], r12b
mov rdx, qword [rbp + 0x48]
cmp rdx, rdi
jb 0x180003ee4
inc rdx
mov rcx, qword [rbp + 0x30]
mov rax, rcx
cmp rdx, r13
jb 0x180003edf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042f8
call fcn.18009a21c
mov qword [rbp + 0x40], r12
mov qword [rbp + 0x48], 0xf
mov byte [rbp + 0x30], r12b
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180003f0f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r15 + 0x18]
cmp rdx, rdi
jb 0x180003f44
mov rcx, qword [r15]
inc rdx
cmp rdx, r13
jb 0x180003f3f
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800042fe
mov rcx, r8
call fcn.18009a21c
mov qword [r15 + 0x10], r12
mov ebx, 0xf
mov qword [r15 + 0x18], rbx
mov byte [r15], r12b
mov rdx, qword [r14 + 0x18]
cmp rdx, rdi
jb 0x180003f89
mov rcx, qword [r14]
inc rdx
cmp rdx, r13
jb 0x180003f84
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800042b1
mov rcx, r8
call fcn.18009a21c
mov qword [r14 + 0x10], r12
mov qword [r14 + 0x18], rbx
mov byte [r14], r12b
mov rdx, qword [rsi + 0x18]
cmp rdx, rdi
jb 0x180003fc9
inc rdx
mov rcx, qword [rsi]
cmp rdx, r13
jb 0x180003fc4
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800042b7
mov rcx, r8
call fcn.18009a21c
mov r13d, 0xf
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], r13
mov byte [rsi], r12b
mov rcx, qword [rbp + 0x78]
xor rcx, rsp
call fcn.180219840
mov rbx, qword [rsp + 0x1d8]
add rsp, 0x180
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rdx, [rbp - 0x10]
call fcn.180075f84
nop
mov rdx, rax
call fcn.180081604
mov rdi, rax
lea rdx, [rbp + 0x50]
call fcn.180081604
mov rdx, rax
mov r8, rdi
mov rcx, r13
call fcn.180004304
nop
mov rdx, qword [rbp + 8]
cmp rdx, 0x10
jb 0x180004069
inc rdx
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004064
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042ec
call fcn.18009a21c
cmp dword [r13], 2
je 0x18000407f
mov dword [0x1802f763c], 0x80000
jmp 0x180004142
mov rdi, qword [r13 + 8]
cmp byte [rdi + 0x40], 0
jne 0x180004094
mov rcx, rdi
call fcn.180098074
mov r12d, eax
mov byte [rdi + 0x40], 1
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x1800040ae
cmp qword [rdi + 0x18], 0
je 0x1800040ae
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
and qword [rdi + 0x30], 0
mov rcx, qword [rdi + 0x18]
test rcx, rcx
je 0x1800040c2
call qword [sym.imp.KERNEL32.dll_CloseHandle]
and qword [rdi + 0x18], 0
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1800040dc
cmp byte [rdi + 0x10], 0
je 0x1800040dc
call qword [sym.imp.KERNEL32.dll_CloseHandle]
and qword [rdi + 8], 0
mov byte [rdi + 0x10], 0
mov dword [0x1802f763c], r12d
mov rcx, qword [rdi + 0x68]
xor r12d, r12d
test rcx, rcx
je 0x180004102
mov edx, 0x6aff8
call fcn.18009a21c
mov qword [rdi + 0x68], r12
mov rcx, qword [rdi + 0x50]
test rcx, rcx
je 0x180004114
call fcn.180099a0c
mov qword [rdi + 0x50], r12
mov rcx, qword [rdi]
test rcx, rcx
je 0x180004125
call fcn.180099a0c
mov qword [rdi], r12
mov edx, 0x40c0
mov rcx, rdi
call fcn.18009a21c
mov edx, 0x10
mov rcx, r13
call fcn.18009a21c
lea rcx, [rbp + 0x50]
call fcn.180016728
nop
mov rdx, qword [rbp + 0x68]
mov edi, 0x1000
cmp rdx, 0x10
jb 0x180004188
inc rdx
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, rdi
jb 0x180004183
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042f2
call fcn.18009a21c
mov qword [rbp + 0x60], r12
mov r13d, 0xf
mov qword [rbp + 0x68], r13
mov byte [rbp + 0x50], r12b
mov rdx, qword [rbp + 0x48]
cmp rdx, 0x10
jb 0x1800041d1
inc rdx
mov rcx, qword [rbp + 0x30]
mov rax, rcx
cmp rdx, rdi
jb 0x1800041cc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042f8
call fcn.18009a21c
mov qword [rbp + 0x40], r12
mov qword [rbp + 0x48], r13
mov byte [rbp + 0x30], r12b
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800041f8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r15 + 0x18]
cmp rdx, 0x10
jb 0x18000422e
mov rcx, qword [r15]
inc rdx
cmp rdx, rdi
jb 0x180004229
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800042fe
mov rcx, r8
call fcn.18009a21c
mov qword [r15 + 0x10], r12
mov qword [r15 + 0x18], r13
mov byte [r15], r12b
mov rdx, qword [r14 + 0x18]
cmp rdx, 0x10
jb 0x18000426b
mov rcx, qword [r14]
inc rdx
cmp rdx, rdi
jb 0x180004266
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800042b1
mov rcx, r8
call fcn.18009a21c
mov qword [r14 + 0x10], r12
mov qword [r14 + 0x18], r13
mov byte [r14], r12b
mov rdx, qword [rsi + 0x18]
cmp rdx, 0x10
jb 0x180003fcf
inc rdx
mov rcx, qword [rsi]
cmp rdx, rdi
jb 0x1800042a7
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800042b7
mov rcx, r8
call fcn.18009a21c
jmp 0x180003fcf
call fcn.1802218a8
nop
call fcn.1802218a8
nop
mov ecx, 0x80004005
call fcn.1800039ec
nop
call fcn.1802218a8
nop
call fcn.1802218a8
nop
call fcn.1802218a8
nop
call fcn.1802218a8
int3
call fcn.180002fe8
int3
call fcn.1802218a8
int3
call fcn.1802218a8
nop
call fcn.1802218a8
nop
call fcn.1802218a8
nop
call fcn.1802218a8
int3