Function at 0x14011a120
Capabilities:
Copy file

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x18]
sub rsp, 0x118
mov rax, qword [0x1402bf5c8]
xor rax, rsp
mov qword [rbp + 8], rax
mov r12, r9
mov qword [rsp + 0x30], r8
mov r15, rdx
mov r13, rcx
mov qword [rbp - 0x60], rcx
mov qword [rbp - 0x58], rdx
mov qword [rbp - 0x50], r8
mov qword [rbp - 0x48], r9
xor ebx, ebx
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rbx
mov qword [rbp - 0x80], rbx
mov qword [rbp - 0x78], rbx
xor sil, sil
lea rcx, [rsp + 0x50]
call fcn.1400a7ad0
mov rdi, rax
mov rcx, qword [rax + 0x10]
mov r8, qword [rax + 0x18]
mov rax, r8
sub rax, rcx
cmp rax, 4
jb 0x14011a1cf
lea rdx, [rcx + 4]
mov qword [rdi + 0x10], rdx
mov rax, rdi
cmp r8, 8
jb 0x14011a1bb
mov rax, qword [rdi]
movabs r8, 0x70006d00650074
mov qword [rax + rcx*2], r8
mov word [rax + rdx*2], bx
jmp 0x14011a1f5
mov qword [rsp + 0x20], 4
lea r9, str.temp
movzx r8d, byte [rsp + 0x38]
mov edx, 4
mov rcx, rdi
call fcn.14002dc10
mov rdi, rax
mov qword [rbp - 0x38], rbx
mov qword [rbp - 0x28], rbx
mov qword [rbp - 0x20], rbx
mov r14, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 8
jb 0x14011a20f
mov rdi, qword [rdi]
movabs rax, 0x7ffffffffffffffe
cmp r14, 8
jae 0x14011a230
movups xmm0, xmmword [rdi]
movups xmmword [rbp - 0x38], xmm0
mov qword [rbp - 0x20], 7
jmp 0x14011a268
mov rbx, r14
or rbx, 7
cmp rbx, rax
cmova rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp - 0x38]
call fcn.140023c30
mov qword [rbp - 0x38], rax
lea r8, [r14*2 + 2]
mov rdx, rdi
mov rcx, rax
call fcn.1401cfe40
mov qword [rbp - 0x20], rbx
xor ebx, ebx
mov qword [rbp - 0x28], r14
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x14011a2ae
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14011a2a9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14011a92a
call fcn.1401a9a50
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], bx
mov rcx, r13
cmp qword [r13 + 0x18], 8
jb 0x14011a2cf
mov rcx, qword [r13]
xor r8d, r8d
lea rdx, [rsp + 0x48]
call fcn.14011a940
mov ebx, eax
mov r14, qword [rsp + 0x48]
test eax, eax
jns 0x14011a2f3
lea rcx, str.Error_creating_file_reader__error_is__08.8lx
jmp 0x14011a7f2
mov rdi, qword [rsp + 0x30]
mov rcx, rdi
cmp qword [rdi + 0x18], 8
jb 0x14011a305
mov rcx, qword [rdi]
mov r8b, 1
lea rdx, [rsp + 0x40]
call fcn.14011a940
mov ebx, eax
test eax, eax
jns 0x14011a32b
mov edx, eax
lea rcx, str.Error_creating_file_writer__error_is__08.8lx
call fcn.14013d200
jmp 0x14011a7fe
xor r8d, r8d
lea rdx, [rsp + 0x70]
lea rcx, [0x140250a00]
call sub.XmlLite.dll_CreateXmlReader
mov ebx, eax
test eax, eax
jns 0x14011a358
mov edx, eax
lea rcx, str.Error_creating_xml_reader__error_is__08.8lx
call fcn.14013d200
jmp 0x14011a7fe
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
xor r8d, r8d
lea edx, [r8 + 4]
call qword [rax + 0x28]
lea rax, [rbp - 0x38]
cmp qword [rbp - 0x20], 8
cmovae rax, qword [rbp - 0x38]
lea rcx, [rbp - 0x80]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, str.utf_16
xor edx, edx
mov rcx, r14
call sub.XmlLite.dll_CreateXmlReaderInputWithEncodingName
mov ebx, eax
test eax, eax
jns 0x14011a3b3
mov edx, eax
lea rcx, str.Error_creating_xml_reader_with_encoding_code_page__error_is__08.8lx
call fcn.14013d200
jmp 0x14011a7fe
xor r8d, r8d
lea rdx, [rsp + 0x78]
lea rcx, [0x140250a10]
call sub.XmlLite.dll_CreateXmlWriter
mov ebx, eax
test eax, eax
jns 0x14011a3e0
mov edx, eax
lea rcx, str.Error_creating_xml_writer__error_is__08.8lx
call fcn.14013d200
jmp 0x14011a7fe
lea r9, [rbp - 0x78]
lea r8, str.utf_16
xor edx, edx
mov rcx, qword [rsp + 0x40]
call sub.XmlLite.dll_CreateXmlWriterOutputWithEncodingName
mov ebx, eax
test eax, eax
jns 0x14011a410
mov edx, eax
lea rcx, str.Error_creating_xml_reader_with_encoding_code_page__error_is__08.8lx
call fcn.14013d200
jmp 0x14011a7fe
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
mov rdx, qword [rbp - 0x80]
call qword [rax + 0x18]
mov ebx, eax
test eax, eax
jns 0x14011a438
mov edx, eax
lea rcx, str.Error_setting_input_for_reader__error_is__08.8lx
call fcn.14013d200
jmp 0x14011a7fe
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
mov rdx, qword [rbp - 0x78]
call qword [rax + 0x18]
mov ebx, eax
test eax, eax
jns 0x14011a460
mov edx, eax
lea rcx, str.Error_setting_output_for_writer__error_is__08.8lx
call fcn.14013d200
jmp 0x14011a7fe
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
mov edx, 1
mov r8d, edx
call qword [rax + 0x28]
mov ebx, eax
test eax, eax
jns 0x14011a48c
mov edx, eax
lea rcx, str.Error_setting_indent_property_in_writer__error_is__08.8lx
call fcn.14013d200
jmp 0x14011a7fe
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
lea rdx, [rbp - 0x40]
call qword [rax + 0x30]
mov ebx, eax
test eax, eax
jne 0x14011a7fe
xor edi, edi
nop word [rax + rax]
mov ecx, dword [rbp - 0x40]
sub ecx, 1
je 0x14011a6b7
sub ecx, 2
je 0x14011a579
cmp ecx, 0xc
je 0x14011a4f6
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, qword [rsp + 0x70]
call qword [rax + MsiApplyPatchW]
mov ebx, eax
test eax, eax
jns 0x14011a699
lea rcx, str.Error_writing_WriteNodeShallow__error_is__08.8lx
jmp 0x14011a7f2
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
xor r8d, r8d
lea rdx, [rbp - 0x70]
call qword [rax + 0x60]
mov ebx, eax
test eax, eax
js 0x14011a7eb
mov r8, qword [rbp - 0x70]
test r8, r8
je 0x14011a555
mov rcx, rdi
lea rdi, str.Command
nop word [rax + rax]
movzx edx, word [r8 + rcx*2]
inc rcx
movzx eax, word [rdi + rcx*2 - 2]
sub edx, eax
jne 0x14011a547
cmp rcx, 8
jne 0x14011a530
movzx esi, sil
test edx, edx
mov edi, 0
cmove esi, edi
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
call qword [rax + MsiSetPropertyW]
mov ebx, eax
test eax, eax
jns 0x14011a699
lea rcx, str.Error_writing_WriteFullEndElement__error_is__08.8lx
jmp 0x14011a7f2
cmp sil, 1
jne 0x14011a4ca
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
xor r8d, r8d
lea rdx, [rbp - 0x68]
call qword [rax + 0x80]
mov ebx, eax
test eax, eax
js 0x14011a7e2
mov rax, qword [rbp - 0x68]
test rax, rax
je 0x14011a7db
xor ecx, ecx
cmp cx, word [rax]
je 0x14011a7db
mov qword [rbp - 0x18], rcx
mov qword [rbp - 8], rcx
mov qword [rbp], rcx
mov rdi, qword [r15 + 0x10]
mov rsi, r15
cmp qword [r15 + 0x18], 8
jb 0x14011a5d7
mov rsi, qword [r15]
cmp rdi, 8
jae 0x14011a5eb
movups xmm0, xmmword [rsi]
movups xmmword [rbp - 0x18], xmm0
mov ebx, 7
jmp 0x14011a627
mov rbx, rdi
or rbx, 7
movabs rax, 0x7ffffffffffffffe
cmp rbx, rax
cmova rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp - 0x18]
call fcn.140023c30
mov qword [rbp - 0x18], rax
lea r8, [rdi*2 + 2]
mov rdx, rsi
mov rcx, rax
call fcn.1401cfe40
mov qword [rbp], rbx
mov qword [rbp - 8], rdi
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
lea rdx, [rbp - 0x18]
cmp rbx, 8
cmovae rdx, qword [rbp - 0x18]
call qword [rax + 0xe0]
mov ebx, eax
test eax, eax
js 0x14011a78a
xor sil, sil
mov rdx, qword [rbp]
cmp rdx, 8
jb 0x14011a697
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14011a692
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14011a930
call fcn.1401a9a50
xor edi, edi
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
lea rdx, [rbp - 0x40]
call qword [rax + 0x30]
mov ebx, eax
test eax, eax
jne 0x14011a7f9
jmp 0x14011a4b0
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
call qword [rax + SHCreateDirectory]
test eax, eax
je 0x14011a6eb
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, qword [rsp + 0x70]
call qword [rax + MsiApplyPatchW]
mov ebx, eax
test eax, eax
js 0x14011a4ea
jmp 0x14011a699
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
xor r8d, r8d
lea rdx, [rbp - 0x70]
call qword [rax + 0x60]
mov ebx, eax
test eax, eax
js 0x14011a7eb
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x14011a762
mov r8, r12
cmp qword [r12 + 0x18], 8
jb 0x14011a71f
mov r8, qword [r12]
sub r8, rax
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x14011a736
add rax, 2
test ecx, ecx
jne 0x14011a722
test edx, edx
jne 0x14011a762
mov sil, 1
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, qword [rsp + 0x70]
call qword [rax + MsiApplyPatchW]
mov ebx, eax
test eax, eax
js 0x14011a4ea
jmp 0x14011a699
xor sil, sil
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, qword [rsp + 0x70]
call qword [rax + MsiApplyPatchW]
mov ebx, eax
test eax, eax
js 0x14011a4ea
jmp 0x14011a699
mov edx, eax
lea rcx, str.Error_writing_WriteString__error_is__08.8lx
call fcn.14013d200
nop
mov rdx, qword [rbp]
cmp rdx, 8
jb 0x14011a7f9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14011a7d4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14011a930
call fcn.1401a9a50
jmp 0x14011a7f9
mov ebx, 0x8000ffff
jmp 0x14011a7f9
lea rcx, str.Error_reading_value__error_is__08.8lx
jmp 0x14011a7f2
lea rcx, str.Error_reading_element_name__error_is__08.8lx
mov edx, eax
call fcn.14013d200
mov rdi, qword [rsp + 0x30]
test r14, r14
je 0x14011a80c
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x14011a81c
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14011a82c
mov rax, qword [rcx]
call qword [rax + 0x10]
xor esi, esi
mov qword [rsp + 0x70], rsi
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x14011a843
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rsp + 0x78], rsi
mov rcx, qword [rbp - 0x80]
test rcx, rcx
je 0x14011a857
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rbp - 0x80], rsi
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x14011a86a
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rbp - 0x78], rsi
mov rdx, r13
cmp qword [r13 + 0x18], 8
jb 0x14011a87c
mov rdx, qword [r13]
mov rcx, rdi
cmp qword [rdi + 0x18], 8
jb 0x14011a889
mov rcx, qword [rdi]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileW]
nop
mov rdx, qword [rbp - 0x20]
cmp rdx, 8
jb 0x14011a8cf
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14011a8ca
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14011a924
call fcn.1401a9a50
mov qword [rbp - 0x28], rsi
mov qword [rbp - 0x20], 7
mov word [rbp - 0x38], si
mov rcx, r13
call fcn.1400272a0
nop
mov rcx, r15
call fcn.1400272a0
nop
mov rcx, rdi
call fcn.1400272a0
nop
mov rcx, r12
call fcn.1400272a0
mov eax, ebx
mov rcx, qword [rbp + 8]
xor rcx, rsp
call fcn.1401a9a30
add rsp, 0x118
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1401e3dbc
nop
call fcn.1401e3dbc
int3
call fcn.1401e3dbc
int3