Function at 0x180003b04
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 [0x1802e8850]
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.180099190
mov rcx, rax
xor r12d, r12d
test rax, rax
je 0x18000429d
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 0x180003b76
mov rdx, qword [rsi]
lea rcx, [rsp + 0x48]
call fcn.180007188
mov r8, rax
lea rdx, [rsp + 0x40]
call fcn.180079888
nop
mov rdx, rax
lea rcx, [rbp + 0x70]
call fcn.180007ba8
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180003bba
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.180008160
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.180008160
nop
lea rdx, [rbp - 0x50]
lea rcx, [rbp + 0x28]
call fcn.180076cf8
nop
mov r8, rax
lea rdx, [rbp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.180009288
lea rcx, [rbp + 0x30]
cmp rcx, rax
je 0x180003c35
mov r8b, r12b
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1800082f4
mov r13d, 0x1000
mov rdx, qword [rsp + 0x68]
cmp rdx, rdi
jb 0x180003c73
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, r13
jb 0x180003c6e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042a8
call fcn.180099528
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], 0xf
mov byte [rsp + 0x50], r12b
mov rdx, qword [rbp - 0x38]
cmp rdx, rdi
jb 0x180003cbc
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, r13
jb 0x180003cb7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042ae
call fcn.180099528
lea rdx, [rbp - 0x30]
call fcn.18007624c
nop
mov r8, rax
lea rdx, [rbp + 0x50]
lea rcx, [rsp + 0x70]
call fcn.180009288
lea rcx, [rbp + 0x50]
cmp rcx, rax
je 0x180003cef
mov r8b, r12b
mov rdx, rax
lea rcx, [rbp + 0x50]
call fcn.1800082f4
mov rdx, qword [rbp - 0x78]
cmp rdx, rdi
jb 0x180003d26
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, r13
jb 0x180003d21
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042b4
call fcn.180099528
mov qword [rbp - 0x80], r12
mov qword [rbp - 0x78], 0xf
mov byte [rsp + 0x70], r12b
mov rdx, qword [rbp - 0x18]
cmp rdx, rdi
jb 0x180003d6d
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, r13
jb 0x180003d68
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042ba
call fcn.180099528
lea rcx, [rbp + 0x30]
cmp qword [rbp + 0x48], rdi
cmovae rcx, qword [rbp + 0x30]
call fcn.180016068
mov rcx, qword [r14 + 0x10]
movabs rax, 0x7fffffffffffffff
mov rdx, qword [rbp + 0x40]
sub rax, rdx
cmp rax, rcx
jb 0x1800042c0
lea r9, [rbp + 0x30]
cmp qword [rbp + 0x48], rdi
cmovae r9, qword [rbp + 0x30]
mov rax, r14
cmp qword [r14 + 0x18], rdi
jb 0x180003db6
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.180009b58
lea rdx, [rbp - 0x70]
cmp qword [rbp - 0x58], rdi
cmovae rdx, qword [rbp - 0x70]
mov rcx, rsi
cmp qword [rsi + 0x18], rdi
jb 0x180003de7
mov rcx, qword [rsi]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileA]
mov rdx, qword [rbp - 0x58]
cmp rdx, rdi
jb 0x180003e26
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, r13
jb 0x180003e21
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042c6
call fcn.180099528
mov rdx, r15
call fcn.180080f54
mov rcx, rax
call fcn.180097468
mov r13, rax
test rax, rax
jne 0x180003fe1
mov rdx, qword [rbp + 0x68]
mov r13d, 0x1000
cmp rdx, rdi
jb 0x180003e7e
inc rdx
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, r13
jb 0x180003e79
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042d2
call fcn.180099528
mov qword [rbp + 0x60], r12
mov qword [rbp + 0x68], 0xf
mov byte [rbp + 0x50], r12b
mov rdx, qword [rbp + 0x48]
cmp rdx, rdi
jb 0x180003ec4
inc rdx
mov rcx, qword [rbp + 0x30]
mov rax, rcx
cmp rdx, r13
jb 0x180003ebf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042d8
call fcn.180099528
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 0x180003eef
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 0x180003f24
mov rcx, qword [r15]
inc rdx
cmp rdx, r13
jb 0x180003f1f
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800042de
mov rcx, r8
call fcn.180099528
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 0x180003f69
mov rcx, qword [r14]
inc rdx
cmp rdx, r13
jb 0x180003f64
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x180004291
mov rcx, r8
call fcn.180099528
mov qword [r14 + 0x10], r12
mov qword [r14 + 0x18], rbx
mov byte [r14], r12b
mov rdx, qword [rsi + 0x18]
cmp rdx, rdi
jb 0x180003fa9
inc rdx
mov rcx, qword [rsi]
cmp rdx, r13
jb 0x180003fa4
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x180004297
mov rcx, r8
call fcn.180099528
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.180218b50
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.1800758d4
nop
mov rdx, rax
call fcn.180080f54
mov rdi, rax
lea rdx, [rbp + 0x50]
call fcn.180080f54
mov rdx, rax
mov r8, rdi
mov rcx, r13
call fcn.1800042e4
nop
mov rdx, qword [rbp + 8]
cmp rdx, 0x10
jb 0x180004049
inc rdx
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004044
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042cc
call fcn.180099528
cmp dword [r13], 2
je 0x18000405f
mov dword [0x1802f65f4], 0x80000
jmp 0x180004122
mov rdi, qword [r13 + 8]
cmp byte [rdi + 0x40], 0
jne 0x180004074
mov rcx, rdi
call fcn.180097380
mov r12d, eax
mov byte [rdi + 0x40], 1
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x18000408e
cmp qword [rdi + 0x18], 0
je 0x18000408e
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
and qword [rdi + 0x30], 0
mov rcx, qword [rdi + 0x18]
test rcx, rcx
je 0x1800040a2
call qword [sym.imp.KERNEL32.dll_CloseHandle]
and qword [rdi + 0x18], 0
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1800040bc
cmp byte [rdi + 0x10], 0
je 0x1800040bc
call qword [sym.imp.KERNEL32.dll_CloseHandle]
and qword [rdi + 8], 0
mov byte [rdi + 0x10], 0
mov dword [0x1802f65f4], r12d
mov rcx, qword [rdi + 0x68]
xor r12d, r12d
test rcx, rcx
je 0x1800040e2
mov edx, 0x6aff8
call fcn.180099528
mov qword [rdi + 0x68], r12
mov rcx, qword [rdi + 0x50]
test rcx, rcx
je 0x1800040f4
call fcn.180098d18
mov qword [rdi + 0x50], r12
mov rcx, qword [rdi]
test rcx, rcx
je 0x180004105
call fcn.180098d18
mov qword [rdi], r12
mov edx, 0x40c0
mov rcx, rdi
call fcn.180099528
mov edx, 0x10
mov rcx, r13
call fcn.180099528
lea rcx, [rbp + 0x50]
call fcn.180016440
nop
mov rdx, qword [rbp + 0x68]
mov edi, 0x1000
cmp rdx, 0x10
jb 0x180004168
inc rdx
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, rdi
jb 0x180004163
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042d2
call fcn.180099528
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 0x1800041b1
inc rdx
mov rcx, qword [rbp + 0x30]
mov rax, rcx
cmp rdx, rdi
jb 0x1800041ac
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800042d8
call fcn.180099528
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 0x1800041d8
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 0x18000420e
mov rcx, qword [r15]
inc rdx
cmp rdx, rdi
jb 0x180004209
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800042de
mov rcx, r8
call fcn.180099528
mov qword [r15 + 0x10], r12
mov qword [r15 + 0x18], r13
mov byte [r15], r12b
mov rdx, qword [r14 + 0x18]
cmp rdx, 0x10
jb 0x18000424b
mov rcx, qword [r14]
inc rdx
cmp rdx, rdi
jb 0x180004246
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x180004291
mov rcx, r8
call fcn.180099528
mov qword [r14 + 0x10], r12
mov qword [r14 + 0x18], r13
mov byte [r14], r12b
mov rdx, qword [rsi + 0x18]
cmp rdx, 0x10
jb 0x180003faf
inc rdx
mov rcx, qword [rsi]
cmp rdx, rdi
jb 0x180004287
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x180004297
mov rcx, r8
call fcn.180099528
jmp 0x180003faf
call fcn.180220bc8
nop
call fcn.180220bc8
nop
mov ecx, 0x80004005
call fcn.1800039cc
nop
call fcn.180220bc8
nop
call fcn.180220bc8
nop
call fcn.180220bc8
nop
call fcn.180220bc8
int3
call fcn.180002fc8
int3
call fcn.180220bc8
int3
call fcn.180220bc8
nop
call fcn.180220bc8
nop
call fcn.180220bc8
nop
call fcn.180220bc8
int3