Function at 0x1400d3310
Capabilities:
Check if file exists
Get file attributes
Write file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x68]
sub rsp, 0x168
mov qword [rbp - 0x18], 0xfffffffffffffffe
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
mov r12, qword [rbp + 0xb0]
lea r14, [r12 + 0x40]
mov rdx, qword [r14 + 8]
mov rbx, qword [r14]
cmp rbx, rdx
je 0x1400d338d
mov rax, rdx
sub rax, rdx
sar rax, 3
lea rdi, [rax*8]
mov r8, rdi
mov rcx, rbx
call fcn.14005e960
lea r11, [rdi + rbx]
mov qword [r14 + 8], r11
mov ecx, 0x100000
call fcn.140057728
mov qword [rsp + 0x70], rax
xor ecx, ecx
mov byte [rsp + 0x48], cl
movzx r8d, cl
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.14002f460
nop
lea rdx, [rbp - 0x10]
mov rsi, qword [rbp + 0xb8]
mov rcx, qword [rsi]
call fcn.140001c10
nop
mov rdi, qword [rbp + 0x18]
mov qword [rbp - 0x40], rdi
mov qword [rsp + 0x60], rdi
xor ebx, ebx
or r13d, 0xffffffff
movsd xmm7, qword [rbp + 0xd0]
xorpd xmm8, xmm8
mov dword [rsp + 0x58], ebx
lea rdx, [rbp - 0x20]
mov rcx, qword [rsi]
call fcn.140001bd0
nop
lea r8, str.DFOptimize_
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.14000b3f0
nop
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400d342d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov r8d, ebx
lea rdx, str._d.bin
lea rcx, [rsp + 0x40]
call fcn.14001e790
lea rcx, [rsp + 0x40]
call fcn.1400c7670
test al, al
jne 0x1400d3892
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400d346b
test al, 0x10
jne 0x1400d3892
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
mov qword [rsp + 0x68], rax
mov rcx, qword [r14 + 8]
lea rax, [rsp + 0x68]
cmp rax, rcx
jae 0x1400d34ec
mov rdx, qword [r14]
lea rax, [rsp + 0x68]
cmp rdx, rax
ja 0x1400d34ec
lea rbx, [rsp + 0x68]
sub rbx, rdx
sar rbx, 3
cmp rcx, qword [r14 + 0x10]
jne 0x1400d34d7
mov rcx, r14
call fcn.140036da0
mov rax, qword [r14]
mov rcx, qword [r14 + 8]
test rcx, rcx
je 0x1400d3506
mov rax, qword [rax + rbx*8]
mov qword [rcx], rax
jmp 0x1400d3506
cmp rcx, qword [r14 + 0x10]
jne 0x1400d34fa
mov rcx, r14
call fcn.140036da0
mov rax, qword [r14 + 8]
test rax, rax
je 0x1400d3506
mov qword [rax], rsi
add qword [r14 + 8], 8
cmp byte [r12 + 0x28], 0
je 0x1400d351d
lea rcx, [rsp + 0x40]
call fcn.1400cf220
mov r14, qword [rbp + 0xc0]
mov rax, qword [r14 + 8]
lea rcx, [rsp + 0x40]
cmp rcx, rax
jae 0x1400d3588
mov rcx, qword [r14]
lea rdx, [rsp + 0x40]
cmp rcx, rdx
ja 0x1400d3588
lea rbx, [rsp + 0x40]
sub rbx, rcx
sar rbx, 3
cmp rax, qword [r14 + 0x10]
jne 0x1400d3559
mov rcx, r14
call fcn.14000c3e0
mov rcx, qword [r14]
mov rdi, qword [r14 + 8]
mov qword [rbp - 0x38], rdi
mov qword [rbp - 0x78], rdi
test rdi, rdi
je 0x1400d3581
mov rcx, qword [rcx + rbx*8]
sub rcx, 0x18
call fcn.14001e5d0
add rax, 0x18
mov qword [rdi], rax
mov rdi, qword [rsp + 0x60]
jmp 0x1400d35bc
cmp rax, qword [r14 + 0x10]
jne 0x1400d3596
mov rcx, r14
call fcn.14000c3e0
mov rbx, qword [r14 + 8]
mov qword [rbp - 0x78], rbx
mov qword [rbp - 0x38], rbx
test rbx, rbx
je 0x1400d35bc
mov rcx, qword [rsp + 0x40]
add rcx, 0xffffffffffffffe8
call fcn.14001e5d0
add rax, 0x18
mov qword [rbx], rax
add qword [r14 + 8], 8
xor r14d, r14d
mov rbx, qword [rbp - 0x40]
mov r15, rbx
sub r15, rdi
lea rax, [r12 + 0x90]
mov r9, rax
mov r8b, 1
mov edx, dword [r12 + 0xa4]
mov rcx, qword [rbp + 0xc8]
call fcn.1400c7cc0
test al, al
je 0x1400d396e
cmp byte [r12 + 0x28], 0
je 0x1400d3638
xor edx, edx
mov rcx, qword [r12 + 0x30]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x1400d3638
mov rcx, qword [r12 + 0x38]
call qword [sym.imp.KERNEL32.dll_SetEvent]
or edx, 0xffffffff
mov rcx, qword [r12 + 0x30]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [r12 + 0x38]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov qword [rsp + 0x20], 0
lea r9, [rbp - 0x80]
mov r8d, 0x100000
mov rdx, qword [rsp + 0x70]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [rbp - 0x80], 0x100000
jb 0x1400d38b9
test eax, eax
je 0x1400d38b9
sub rdi, 0x100000
mov qword [rsp + 0x60], rdi
add r15, 0x100000
pxor xmm6, xmm6
cvtsi2sd xmm6, r15
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
divsd xmm6, xmm0
mulsd xmm6, xmm7
comisd xmm6, xmm7
jbe 0x1400d36a5
movapd xmm6, xmm7
cmp byte [r12 + 0x28], 0
je 0x1400d36b6
movapd xmm0, xmm6
call fcn.1400cf2f0
lea rax, [rsp + 0x50]
mov qword [rbp - 0x78], rax
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x50], rax
lea rax, [0x140119a6c]
test rax, 0xffffffffffff0000
jne 0x1400d3709
movzx ebx, ax
mov ecx, ebx
call fcn.14001df50
test rax, rax
je 0x1400d371a
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.14001e130
jmp 0x1400d371a
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.14001e490
nop
lea rax, [rsp + 0x50]
mov qword [rbp - 0x78], rax
mov edi, dword [r12 + 0xa4]
lea rax, vtable.OperationStatus.0
mov qword [rbp - 0x70], rax
movsd qword [rbp - 0x68], xmm8
xor esi, esi
mov qword [rbp - 0x60], rsi
mov dword [rbp - 0x58], esi
lea rax, [rbp - 0x50]
mov qword [rbp - 0x38], rax
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x50], rax
lea rax, str.Unknown
test rax, 0xffffffffffff0000
jne 0x1400d3795
movzx ebx, ax
mov ecx, ebx
call fcn.14001df50
test rax, rax
je 0x1400d37a8
mov r8d, ebx
mov rdx, rax
lea rcx, [rbp - 0x50]
call fcn.14001e130
jmp 0x1400d37a8
mov r8d, 7
mov rdx, rax
lea rcx, [rbp - 0x50]
call fcn.14001e490
nop
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x48], rax
mov dword [rbp - 0x60], edi
mov qword [rbp - 0x5c], 2
movsd qword [rbp - 0x68], xmm6
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x50]
call fcn.14001deb0
xor r8d, r8d
lea rdx, [0x140119d7c]
lea rcx, [rbp - 0x48]
call fcn.14001e490
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400d3814
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rdx, [rbp - 0x70]
mov rcx, qword [rbp + 0xc8]
call fcn.140022750
nop
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400d3844
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400d3863
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
inc r14d
mov rdi, qword [rsp + 0x60]
cmp r14d, 0x400
jge 0x1400d3882
mov rsi, qword [rsp + 0x68]
mov rbx, qword [rbp - 0x40]
jmp 0x1400d35ce
lea r14, [r12 + 0x40]
mov ebx, dword [rsp + 0x58]
mov rsi, qword [rbp + 0xb8]
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400d38b2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
inc ebx
jmp 0x1400d33e8
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400d38da
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp + 0x20]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400d38f9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdx, qword [rbp + 8]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400d3918
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdx, qword [rbp - 0x10]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400d3938
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x1400d3967
lock dec dword [rcx + 8]
jne 0x1400d3967
mov rbx, qword [rsp + 0x78]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
lock dec dword [rbx + 0xc]
jne 0x1400d3967
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
call qword [rax + 0x10]
xor eax, eax
jmp 0x1400d3a4b
lea rax, str.SsdOptimizer::CreateOptimizationFiles
mov qword [rbp - 0x30], rax
mov dword [rbp - 0x28], 0x2f0
mov dword [rbp - 0x24], 1
lea rdx, [0x140123090]
lea rcx, [rbp - 0x30]
call fcn.14000b5d0
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400d39b9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp + 0x20]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400d39d8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdx, qword [rbp + 8]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400d39f7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdx, qword [rbp - 0x10]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400d3a17
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x1400d3a46
lock dec dword [rcx + 8]
jne 0x1400d3a46
mov rbx, qword [rsp + 0x78]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
lock dec dword [rbx + 0xc]
jne 0x1400d3a46
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov eax, 3
lea r11, [rsp + 0x168]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret