Function at 0x14000d670
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 8]
sub rsp, 0x108
mov rax, qword [0x1400490e0]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r13, qword [rbp + 0x80]
mov rax, r9
mov r12, qword [rbp + 0x78]
mov rdi, rcx
mov qword [rsp + 0x58], rax
mov ebx, r8d
test rdx, rdx
je 0x14000da96
test rax, rax
je 0x14000da96
mov eax, dword [rcx + 0x10]
cmp ebx, eax
ja 0x14000da96
mov r15d, dword [rbp + 0x70]
cmp r15d, eax
ja 0x14000da96
mov rcx, qword [rcx + 0x18]
mov r8d, ebx
test ebx, ebx
je 0x14000d709
test rcx, rcx
jne 0x14000d704
call fcn.1400256b0
mov dword [rax], reloc.OLEAUT32.dll_SafeArrayAccessData
call fcn.14002558c
mov ebx, 0x1000
jmp 0x14000da9b
call fcn.1400207f0
mov rax, qword [rdi + 0x18]
mov dword [rdi + 0x30], ebx
test rax, rax
je 0x14000da96
xor r8d, r8d
cmp dword [rax + 4], 0xd0004
jne 0x14000d729
mov dword [rax + 8], r8d
mov rcx, qword [rdi + 0x40]
mov ebx, 0x1000
test rcx, rcx
jne 0x14000d871
cmp qword [rdi + 0x38], r8
jne 0x14000d871
mov edx, dword [rdi + 0x30]
mov esi, 0x80008003
mov eax, dword [rdi + 0x10]
cmp edx, eax
ja 0x14000d9b0
xorps xmm0, xmm0
mov dword [rsp + 0x40], eax
xor eax, eax
movaps xmmword [rbp - 0x60], xmm0
mov dword [rbp - 0x20], eax
mov qword [rbp - 0x80], rax
mov rax, qword [rdi + 8]
movaps xmmword [rbp - 0x70], xmm0
movaps xmmword [rbp - 0x50], xmm0
movaps xmmword [rbp - 0x40], xmm0
movaps xmmword [rbp - 0x30], xmm0
movups xmmword [rsp + 0x60], xmm0
mov dword [rbp - 0x60], 0x1c
movups xmmword [rsp + 0x70], xmm0
mov rcx, qword [rax]
sub rcx, qword [0x140036458]
jne 0x14000d7a8
mov rcx, qword [rax + 8]
sub rcx, qword [0x140036460]
mov eax, r8d
mov dword [rbp - 0x40], edx
test rcx, rcx
mov dword [rsp + 0x20], r8d
mov rcx, qword [rdi + 0x48]
lea r9, vtable.type_info.0
setne al
lea r8, vtable.type_info.0
inc eax
xor edx, edx
mov dword [rbp - 0x50], eax
mov rax, qword [rdi + 0x18]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x38], rax
lea rax, [rsp + 0x40]
mov qword [rbp - 0x30], rax
call fcn.14002159c
mov rcx, qword [rdi + 0x48]
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
mov dword [rsp + 0x20], 0
xor edx, edx
mov r14, rax
call fcn.14002159c
test r14, r14
jne 0x14000d834
test rax, rax
je 0x14000d9b0
xor r9d, r9d
lea r8, [rsp + 0x60]
lea rdx, [rbp - 0x70]
mov rcx, rax
call fcn.140003fe0
jmp 0x14000d848
xor r9d, r9d
lea r8, [rsp + 0x60]
lea rdx, [rbp - 0x70]
mov rcx, r14
call fcn.1400116d0
test eax, eax
js 0x14000d9b0
cmp dword [rbp - 0x54], 1
jne 0x14000d9b0
mov eax, dword [rsp + 0x40]
cmp eax, dword [rdi + 0x10]
mov dword [rdi + 0x30], eax
mov eax, 0
cmovbe esi, eax
jmp 0x14000d9b0
mov eax, dword [rdi + 0x10]
mov esi, 0x80008003
mov r14d, r8d
cmp dword [rdi + 0x30], eax
ja 0x14000d9b0
cmp rcx, 0xffffffffffffffff
je 0x14000d9b0
mov rcx, qword [rdi + 0x38]
mov edx, 0x4e20
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x14000d9b0
cmp eax, 0x80
jne 0x14000d8b6
lea r14d, [rax - 0x7f]
jmp 0x14000d8be
test eax, eax
jne 0x14000d9b0
mov r8d, dword [rdi + 0x30]
lea r9, [rsp + 0x48]
mov rdx, qword [rdi + 0x18]
xor eax, eax
mov rcx, qword [rdi + 0x40]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x14000d8ed
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x14000d913
mov r8d, dword [rdi + 0x10]
lea r9, [rsp + 0x48]
mov rdx, qword [rdi + 0x18]
xor eax, eax
mov rcx, qword [rdi + 0x40]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x14000d996
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor edx, edx
cmp eax, 0x48f
mov ecx, edx
sete cl
test ecx, ecx
je 0x14000d9a6
test r14d, r14d
je 0x14000d9a6
mov rcx, qword [rdi + 0x40]
xor eax, eax
mov dword [rsp + 0x44], edx
mov esi, ebx
mov dword [rsp + 0x4c], eax
mov byte [rsp + 0x50], al
cmp rcx, 0xffffffffffffffff
je 0x14000d9a6
mov r8, qword [rdi + 8]
test r8, r8
je 0x14000d9a6
mov qword [rsp + 0x38], rdx
lea rax, [rsp + 0x44]
mov qword [rsp + 0x30], rax
mov edx, 0x8000e004
lea rax, [rsp + 0x4c]
mov dword [rsp + 0x28], 5
mov r9d, reloc.OLEAUT32.dll_SafeArrayGetDim
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x14000d9a6
cmp dword [rsp + 0x44], 5
mov eax, 0
cmove esi, eax
jmp 0x14000d9a6
mov eax, dword [rsp + 0x48]
mov dword [rdi + 0x30], eax
cmp eax, dword [rdi + 0x10]
ja 0x14000d9a6
xor eax, eax
mov esi, eax
mov rcx, qword [rdi + 0x38]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
test esi, esi
je 0x14000d9be
mov ebx, 0x80008003
jmp 0x14000da9b
cmp dword [rdi + 0x30], 0x10
jb 0x14000d9b4
mov rsi, qword [rdi + 0x18]
test rsi, rsi
je 0x14000da96
mov r14d, dword [rsi + 0xc]
mov eax, 0x84
add r14d, 0x10
cmp dword [rsi + 4], 0x2f
cmove r14d, eax
cmp r15d, r14d
jb 0x14000d9b4
mov r15d, r14d
test r14d, r14d
je 0x14000da03
mov rcx, qword [rsp + 0x58]
mov r8d, r15d
mov rdx, rsi
call fcn.1400207f0
test r12, r12
je 0x14000da90
test r13, r13
je 0x14000da90
cmp dword [rsi], 0x40001
jbe 0x14000da69
cmp dword [rsi + 8], 0x80000000
jne 0x14000da69
lea rdx, [r14 + rsi]
test rdx, rdx
je 0x14000da51
lfence
mov eax, dword [rdx]
add rdx, 4
mov r8d, eax
mov dword [r13], eax
test r8, r8
je 0x14000da90
mov rcx, r12
test rdx, rdx
jne 0x14000da88
xor edx, edx
call fcn.140020220
jmp 0x14000da57
xor eax, eax
mov dword [r13], eax
call fcn.1400256b0
mov dword [rax], reloc.OLEAUT32.dll_SafeArrayAccessData
call fcn.14002558c
jmp 0x14000da9b
mov eax, dword [rdi + 0x30]
sub eax, r14d
mov dword [r13], eax
je 0x14000da90
mov r8d, eax
lea rdx, [r14 + rsi]
test eax, eax
je 0x14000da90
mov rcx, r12
test rdx, rdx
je 0x14000da48
lfence
call fcn.1400207f0
xor eax, eax
mov ebx, eax
jmp 0x14000da9b
mov ebx, 0x1005
mov eax, ebx
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.14001dff0
add rsp, 0x108
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret