Function at 0x1402b44b8
Capabilities:
Get file size
Read file on windows
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x110
mov rax, qword [0x1404e1800]
xor rax, rsp
mov qword [rsp + 0x108], rax
mov r13, r8
mov r15, rdx
mov rsi, rcx
mov qword [rsp + 0x70], rcx
xor r8d, r8d
call fcn.140086d00
lea r14, str.amcorewcd_sourcecommands_adapters_srcdatacolectionfileutils.cpp
cmp al, 1
jne 0x1402b452b
mov rcx, qword [rsp + 0x138]
lea rax, str.DataCollectionFileUtils::ConvertToUtf8:_original__output_files_cannot_be_the_same
mov qword [rsp + 0x20], rax
mov r9d, 0xa0
mov r8, r14
lea edx, [r9 - 0x3f]
call fcn.1400a2e64
mov rcx, rsi
cmp qword [rsi + 0x18], 8
jb 0x1402b4538
mov rcx, qword [rsi]
and qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
nop dword [rax + rax]
mov rbx, rax
mov qword [rsp + 0x78], rax
cmp rax, 0xffffffffffffffff
setne al
mov rcx, qword [rsp + 0x138]
lea rdx, str.DataCollectionFileUtils::ConvertToUtf8:_Failed_to_open_an_output_file
mov qword [rsp + 0x20], rdx
movzx r9d, al
mov r8, r14
mov edx, WSAGetLastError
call fcn.1400d02ac
lea rdx, [rsp + 0x80]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
nop dword [rax + rax]
test eax, eax
jne 0x1402b462d
call fcn.140091ae4
cmp dword [rax], 3
jbe 0x1402b4601
mov rcx, rsi
cmp qword [rsi + 0x18], 8
jb 0x1402b45cb
mov rcx, qword [rsi]
mov qword [rsp + 0x58], rcx
lea rdi, str.DataCollectionFileUtils::ConvertToUtf8:_Failed_to_get_original_size_of_the_output_file
mov qword [rsp + 0x48], rdi
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x20], rcx
lea rdx, [0x140454640]
mov rcx, rax
call fcn.140001534
jmp 0x1402b4608
lea rdi, str.DataCollectionFileUtils::ConvertToUtf8:_Failed_to_get_original_size_of_the_output_file
cmp rbx, 0xffffffffffffffff
setne al
mov rcx, qword [rsp + 0x138]
mov qword [rsp + 0x20], rdi
movzx r9d, al
mov r8, r14
mov edx, 0x75
call fcn.1400d02ac
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x48], eax
mov r12d, eax
cmp rax, r13
ja 0x1402b46dd
cmp r12d, 0xffffffff
jae 0x1402b46dd
xor r13d, r13d
test eax, eax
jne 0x1402b4753
call fcn.140091ae4
cmp dword [rax], 3
jbe 0x1402b46b5
mov dword [rsp + 0x40], r13d
mov rcx, rsi
cmp qword [rsi + 0x18], 8
jb 0x1402b4675
mov rcx, qword [rsi]
mov qword [rsp + 0x58], rcx
lea rdi, str.original_size_of_the_output_file_cannot_be_0
mov qword [rsp + 0x50], rdi
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x20], rcx
lea rdx, [0x140454459]
mov rcx, rax
call fcn.140003260
jmp 0x1402b46bc
lea rdi, str.original_size_of_the_output_file_cannot_be_0
mov rcx, qword [rsp + 0x138]
mov qword [rsp + 0x20], rdi
mov r9d, 0xe8
mov r8, r14
lea edx, [r9 - 0x63]
call fcn.1400a2e64
jmp 0x1402b4753
call fcn.140091ae4
cmp dword [rax], 3
jbe 0x1402b472a
mov rcx, rsi
cmp qword [rsi + 0x18], 8
jb 0x1402b46f4
mov rcx, qword [rsi]
mov qword [rsp + 0x50], rcx
lea rdi, str.DataCollectionFileUtils::ConvertToUtf8:_Original_file_size_exceeds_max_permitted_size
mov qword [rsp + 0x58], rdi
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x20], rcx
lea rdx, [0x140454640]
mov rcx, rax
call fcn.140001534
jmp 0x1402b4731
lea rdi, str.DataCollectionFileUtils::ConvertToUtf8:_Original_file_size_exceeds_max_permitted_size
mov rcx, qword [rsp + 0x138]
mov qword [rsp + 0x20], rdi
mov r9d, 0xa0
mov r8, r14
lea edx, [r9 - 0x23]
call fcn.1400a2e64
xor r13d, r13d
mov rcx, r15
cmp qword [r15 + 0x18], 8
jb 0x1402b4760
mov rcx, qword [r15]
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
nop dword [rax + rax]
mov rdi, rax
mov qword [rsp + 0x58], rax
cmp rax, 0xffffffffffffffff
setne al
mov rcx, qword [rsp + 0x138]
lea rdx, str.DataCollectionFileUtils::ConvertToUtf8:_failed_to_create_a_file_for_localization
mov qword [rsp + 0x20], rdx
movzx r9d, al
mov r8, r14
mov edx, SysAllocStringByteLen
call fcn.1400d02ac
mov rdx, r12
lea rcx, [rsp + 0xa8]
call fcn.1400de718
nop
mov dword [rsp + 0x44], r13d
mov dword [rsp + 0x68], r13d
lea rdx, [rsp + 0xa8]
cmp qword [rsp + 0xc0], 0x10
cmovae rdx, qword [rsp + 0xa8]
mov qword [rsp + 0x20], r13
lea r9, [rsp + 0x44]
mov r8d, dword [rsp + 0x48]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
nop dword [rax + rax]
test eax, eax
jne 0x1402b48af
call fcn.140091ae4
cmp dword [rax], 3
jbe 0x1402b4886
mov ecx, dword [rsp + 0x44]
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0x40], r13d
cmp qword [rsi + 0x18], 8
jb 0x1402b483c
mov rsi, qword [rsi]
mov qword [rsp + 0x50], rsi
lea rbx, str.Failed_to_read_an_output_file
mov qword [rsp + 0x60], rbx
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x38], rcx
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x20], rcx
lea rdx, [0x14045440d]
mov rcx, rax
call fcn.140001674
jmp 0x1402b488d
lea rbx, str.Failed_to_read_an_output_file
mov rcx, qword [rsp + 0x138]
mov qword [rsp + 0x20], rbx
xor r9d, r9d
mov r8, r14
mov edx, 0xa1
call fcn.1400d02ac
jmp 0x1402b493c
cmp dword [rsp + 0x44], r13d
jne 0x1402b493c
call fcn.140091ae4
cmp dword [rax], 3
jbe 0x1402b4916
mov ecx, dword [rsp + 0x44]
mov dword [rsp + 0x48], ecx
cmp qword [rsi + 0x18], 8
jb 0x1402b48d6
mov rsi, qword [rsi]
mov qword [rsp + 0x60], rsi
lea rbx, str.An_output_file_is_empty
mov qword [rsp + 0x50], rbx
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x20], rcx
lea rdx, [0x1404544e1]
mov rcx, rax
call fcn.140003260
jmp 0x1402b491d
lea rbx, str.An_output_file_is_empty
mov rcx, qword [rsp + 0x138]
mov qword [rsp + 0x20], rbx
mov r9d, 0xe8
mov r8, r14
lea edx, [r9 - 0x3f]
call fcn.1400a2e64
mov qword [rsp + 0x98], r13
mov qword [rsp + 0xa0], SafeArrayLock
mov byte [rsp + 0x88], r13b
mov edx, dword [rsp + 0x44]
lea rcx, [rsp + 0xa8]
call fcn.14013b6a0
mov r8d, 1
lea rdx, [rsp + 0xa8]
lea rcx, [rsp + 0xc8]
call fcn.1400b6250
nop
lea rdx, [rsp + 0xc8]
lea rcx, [rsp + 0xe8]
call fcn.14009e99c
mov rdx, rax
lea rcx, [rsp + 0x88]
call fcn.1400bf910
lea rcx, [rsp + 0xe8]
call fcn.1400bfa74
nop
lea rcx, [rsp + 0xc8]
call fcn.14007a7c0
nop
lea rdx, [rsp + 0x88]
cmp qword [rsp + 0xa0], 0x10
cmovae rdx, qword [rsp + 0x88]
mov qword [rsp + 0x20], r13
lea r9, [rsp + 0x68]
mov r8d, dword [rsp + 0x98]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
nop dword [rax + rax]
test eax, eax
jne 0x1402b4a99
call fcn.140091ae4
cmp dword [rax], 3
jbe 0x1402b4a74
mov ecx, dword [rsp + 0x68]
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0x40], r13d
cmp qword [r15 + 0x18], 8
jb 0x1402b4a2a
mov r15, qword [r15]
mov qword [rsp + 0x60], r15
lea rbx, str.DataCollectionFileUtils::ConvertToUtf8:_failed_writing_to_file
mov qword [rsp + 0x50], rbx
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x38], rcx
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x20], rcx
lea rdx, [0x14045455d]
mov rcx, rax
call fcn.140001674
jmp 0x1402b4a7b
lea rbx, str.DataCollectionFileUtils::ConvertToUtf8:_failed_writing_to_file
mov rcx, qword [rsp + 0x138]
mov qword [rsp + 0x20], rbx
xor r9d, r9d
mov r8, r14
mov edx, 0xcc
call fcn.1400d02ac
nop
lea rcx, [rsp + 0x88]
call fcn.1400bfa74
nop
lea rcx, [rsp + 0xa8]
call fcn.1400bfa74
nop
lea rcx, [rsp + 0x58]
call fcn.1400f0310
nop
lea rcx, [rsp + 0x78]
call fcn.1400f0310
xor eax, eax
jmp 0x1402b4b03
mov rcx, qword [rsp + 0x108]
xor rcx, rsp
call fcn.140112420
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret