Function at 0x140002670
Capabilities:
Copy file
Create directory

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x1c0
test byte [0x1400a9428], 1
jne 0x1400026c8
movups xmm0, xmmword [0x1400a9428]
movaps xmmword [rsp + 0x60], xmm0
mov rax, qword [0x1400a9438]
mov qword [rsp + 0x70], rax
movzx ebx, byte [rsp + 0x60]
test bl, 1
jne 0x140002731
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x90], rax
movaps xmm0, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x80], xmm0
jmp 0x14000279e
mov rsi, qword [0x1400a9438]
mov rdi, qword [0x1400a9430]
cmp rdi, 0x16
ja 0x1400026ea
lea rcx, [rsp + 0x61]
lea ebx, [rdi + rdi]
mov byte [rsp + 0x60], bl
jmp 0x14000271a
cmp rdi, 0xfffffffffffffff0
jae 0x140002bc9
mov rbx, rdi
or rbx, 0xf
lea rcx, [rbx + 1]
call sym..weak._Znwy.default.__clang_call_terminate
mov rcx, rax
mov qword [rsp + 0x70], rax
add rbx, 2
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rdi
inc rdi
mov rdx, rsi
mov r8, rdi
call sym.memmove
test bl, 1
je 0x1400026a9
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x70]
cmp rsi, 0x16
ja 0x140002755
lea rcx, [rsp + 0x81]
lea eax, [rsi + rsi]
mov byte [rsp + 0x80], al
jmp 0x140002790
cmp rsi, 0xfffffffffffffff0
jae 0x140002bd3
mov rbx, rsi
or rbx, 0xf
inc rbx
mov rcx, rbx
call sym..weak._Znwy.default.__clang_call_terminate
mov rcx, rax
mov qword [rsp + 0x90], rax
or rbx, 1
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], rsi
inc rsi
mov rdx, rdi
mov r8, rsi
call sym.memmove
lea rdx, [0x1400834c4]
lea rcx, [rsp + 0x80]
mov r8d, 0x10
call method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.append_char_const__unsigned_long_long_
mov ecx, 0x90
call sym..weak._Znwy.default.__clang_call_terminate
mov rsi, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x40], 0x49
mov qword [rsp + 0x48], 0x43
lea rdx, [0x1400834d6]
mov r8d, 0x86
mov rcx, rax
call sym.memcpy
mov word [rsi + 0x86], 0
lea rcx, section..data
lea rdx, [rsp + 0x40]
call method.Logger.Debug_std::__1::basic_string_wchar_t__std::__1::char_traits_wchar_t___std::__1::allocator_wchar_t____const_
test byte [rsp + 0x40], 1
je 0x14000281c
mov rcx, qword [rsp + 0x50]
call sym..weak._ZdlPv.default.__clang_call_terminate
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea rdx, [rsp + 0xb0]
mov rcx, rax
mov r8d, 0x104
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x14000287d
lea rcx, [rsp + 0xb0]
call sym.strlen
cmp rax, 0xfffffffffffffff0
jae 0x140002bbf
mov rsi, rax
cmp rax, 0x17
jae 0x1400028f6
lea eax, [rsi + rsi]
mov byte [rsp + 0x40], al
lea rdi, [rsp + 0x41]
test rsi, rsi
jne 0x14000291e
jmp 0x140002931
lea rcx, [rsp + 0x20]
call sym.GetLastErrorAsString__
lea r8, str.GetModuleFileNameA_failed_with_error
lea rcx, [rsp + 0x20]
mov r9d, 0x25
xor edx, edx
call method.std::__1::basic_string_wchar_t__std::__1::char_traits_wchar_t___std::__1::allocator_wchar_t___.insert_unsigned_long_long__wchar_t_const__unsigned_long_long_
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x50], rcx
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x40], xmm0
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
lea rcx, section..data
lea rdx, [rsp + 0x40]
call method.Logger.Error_std::__1::basic_string_wchar_t__std::__1::char_traits_wchar_t___std::__1::allocator_wchar_t____const_
test byte [rsp + 0x40], 1
je 0x1400028e1
mov rcx, qword [rsp + 0x50]
call sym..weak._ZdlPv.default.__clang_call_terminate
test byte [rsp + 0x20], 1
je 0x140002b8b
mov rcx, qword [rsp + 0x30]
jmp 0x140002b86
mov rbx, rsi
or rbx, 0xf
inc rbx
mov rcx, rbx
call sym..weak._Znwy.default.__clang_call_terminate
mov rdi, rax
mov qword [rsp + 0x50], rax
or rbx, 1
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rsi
lea rdx, [rsp + 0xb0]
mov rcx, rdi
mov r8, rsi
call sym.memcpy
mov byte [rdi + rsi], 0
mov ecx, 0x60
call sym..weak._Znwy.default.__clang_call_terminate
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x20], 0x31
mov qword [rsp + 0x28], 0x2b
movups xmm0, xmmword [0x1400835ea]
movups xmmword [rax + 0x40], xmm0
movups xmm0, xmmword [0x1400835da]
movups xmmword [rax + 0x30], xmm0
movups xmm0, xmmword [0x1400835ca]
movups xmmword [rax + 0x20], xmm0
movups xmm0, xmmword [0x1400835ba]
movups xmmword [rax + 0x10], xmm0
movups xmm0, xmmword [0x1400835aa]
movups xmmword [rax], xmm0
movabs rcx, 0x2e04320456043b
mov qword [rax + 0x4e], rcx
mov word [rax + 0x56], 0
lea rcx, section..data
lea rdx, [rsp + 0x20]
call method.Logger.Debug_std::__1::basic_string_wchar_t__std::__1::char_traits_wchar_t___std::__1::allocator_wchar_t____const_
test byte [rsp + 0x20], 1
je 0x1400029c2
mov rcx, qword [rsp + 0x30]
call sym..weak._ZdlPv.default.__clang_call_terminate
test byte [rsp + 0x60], 1
je 0x1400029d0
mov rcx, qword [rsp + 0x70]
jmp 0x1400029d5
lea rcx, [rsp + 0x61]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x1400029f2
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x140002af9
mov ecx, 0xb0
call sym..weak._Znwy.default.__clang_call_terminate
mov rsi, rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x20], 0x59
mov qword [rsp + 0x28], 0x57
lea rdx, [0x14008364a]
mov r8d, 0xae
mov rcx, rax
call sym.memcpy
mov word [rsi + 0xae], 0
lea rcx, section..data
lea rdx, [rsp + 0x20]
call method.Logger.Debug_std::__1::basic_string_wchar_t__std::__1::char_traits_wchar_t___std::__1::allocator_wchar_t____const_
test byte [rsp + 0x20], 1
je 0x140002a56
mov rcx, qword [rsp + 0x30]
call sym..weak._ZdlPv.default.__clang_call_terminate
test byte [rsp + 0x40], 1
je 0x140002a76
mov rcx, qword [rsp + 0x50]
test byte [rsp + 0x80], 1
jne 0x140002a85
lea rdx, [rsp + 0x81]
jmp 0x140002a8d
lea rcx, [rsp + 0x41]
test byte [rsp + 0x80], 1
je 0x140002a6c
mov rdx, qword [rsp + 0x90]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x140002b7a
lea rcx, [rsp + 0x98]
call sym.GetLastErrorAsString__
lea r8, str.CopyFileA_failed_with_error
lea rcx, [rsp + 0x98]
mov r9d, 0x1c
xor edx, edx
call method.std::__1::basic_string_wchar_t__std::__1::char_traits_wchar_t___std::__1::allocator_wchar_t___.insert_unsigned_long_long__wchar_t_const__unsigned_long_long_
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x30], rcx
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x20], xmm0
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
lea rcx, section..data
lea rdx, [rsp + 0x20]
call method.Logger.Error_std::__1::basic_string_wchar_t__std::__1::char_traits_wchar_t___std::__1::allocator_wchar_t____const_
jmp 0x140002b52
lea rcx, [rsp + 0x98]
call sym.GetLastErrorAsString__
lea r8, str.CreateDirectoryA_failed_with_error
lea rcx, [rsp + 0x98]
mov r9d, 0x23
xor edx, edx
call method.std::__1::basic_string_wchar_t__std::__1::char_traits_wchar_t___std::__1::allocator_wchar_t___.insert_unsigned_long_long__wchar_t_const__unsigned_long_long_
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x30], rcx
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x20], xmm0
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
lea rcx, section..data
lea rdx, [rsp + 0x20]
call method.Logger.Error_std::__1::basic_string_wchar_t__std::__1::char_traits_wchar_t___std::__1::allocator_wchar_t____const_
test byte [rsp + 0x20], 1
je 0x140002b63
mov rcx, qword [rsp + 0x30]
call sym..weak._ZdlPv.default.__clang_call_terminate
test byte [rsp + 0x98], 1
je 0x140002b7a
mov rcx, qword [rsp + 0xa8]
call sym..weak._ZdlPv.default.__clang_call_terminate
test byte [rsp + 0x40], 1
je 0x140002b8b
mov rcx, qword [rsp + 0x50]
call sym..weak._ZdlPv.default.__clang_call_terminate
test byte [rsp + 0x80], 1
je 0x140002ba2
mov rcx, qword [rsp + 0x90]
call sym..weak._ZdlPv.default.__clang_call_terminate
test byte [rsp + 0x60], 1
je 0x140002bb3
mov rcx, qword [rsp + 0x70]
call sym..weak._ZdlPv.default.__clang_call_terminate
nop
add rsp, 0x1c0
pop rbx
pop rdi
pop rsi
ret
lea rcx, [rsp + 0x40]
call method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.__throw_length_error_abi:ue170006____const
lea rcx, [rsp + 0x60]
call method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.__throw_length_error_abi:ue170006____const
lea rcx, [rsp + 0x80]
call method.std::__1::basic_string_char__std::__1::char_traits_char___std::__1::allocator_char___.__throw_length_error_abi:ue170006____const
jmp 0x140002be9
mov rsi, rax
test byte [rsp + 0x20], 1
je 0x140002c02
mov rcx, qword [rsp + 0x30]
call sym..weak._ZdlPv.default.__clang_call_terminate
jmp 0x140002c02
test byte [rsp + 0x98], 1
je 0x140002c79
mov rcx, qword [rsp + 0xa8]
call sym..weak._ZdlPv.default.__clang_call_terminate
jmp 0x140002c79
test byte [rsp + 0x40], 1
je 0x140002c8f
mov rcx, qword [rsp + 0x50]
call sym..weak._ZdlPv.default.__clang_call_terminate
jmp 0x140002c8f
test byte [rsp + 0x80], 1
jne 0x140002ca8
test byte [rsp + 0x60], 1
jne 0x140002cbc
mov rcx, rsi
call sym._Unwind_Resume
mov rcx, qword [rsp + 0x90]
call sym..weak._ZdlPv.default.__clang_call_terminate
test byte [rsp + 0x60], 1
je 0x140002ca0
mov rcx, qword [rsp + 0x70]
call sym..weak._ZdlPv.default.__clang_call_terminate
mov rcx, rsi
call sym._Unwind_Resume
int3