Function at 0x140028d90
Capabilities:
Write file on windows

Disassembly:
push rsi
push rdi
push r14
sub rsp, 0x3d0
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rsp + 0x400], rbx
mov rax, qword [0x1401bbe90]
xor rax, rsp
mov qword [rsp + 0x3c0], rax
mov r14, rdx
mov qword [rsp + 0x50], rdx
xor ebx, ebx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000000
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x140028f5a
mov ecx, dword [0x1401c3d80]
imul ecx, ecx
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0xb
sub ecx, edx
cmp ecx, 0xa
jne 0x140028f37
mov edi, ebx
call fcn.1400ce478
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [rsp + rdi*8 + 0x60], xmm0
inc rdi
cmp rdi, 0x6c
jb 0x140028e28
mov r9d, 0x6b
lea r10d, [r9 + 1]
nop
mov edx, 0x6b
cmp rbx, rdx
jge 0x140028f28
cmp r9, 4
jl 0x140028efd
lea rcx, [rsp + 0x3a8]
mov r8d, 0x67
sub r8, rbx
shr r8, 2
inc r8
lea rax, [r8*4]
sub rdx, rax
nop dword [rax + rax]
movsd xmm0, qword [rcx + 0x10]
movsd xmm1, qword [rcx + 8]
comisd xmm0, xmm1
jbe 0x140028eaa
movsd qword [rcx + 0x10], xmm1
movsd qword [rcx + 8], xmm0
movsd xmm0, qword [rcx + 8]
movsd xmm1, qword [rcx]
comisd xmm0, xmm1
jbe 0x140028ec2
movsd qword [rcx + 8], xmm1
movsd qword [rcx], xmm0
movsd xmm0, qword [rcx]
movsd xmm1, qword [rcx - 8]
comisd xmm0, xmm1
jbe 0x140028eda
movsd qword [rcx], xmm1
movsd qword [rcx - 8], xmm0
movsd xmm0, qword [rcx - 8]
movsd xmm1, qword [rcx - 0x10]
comisd xmm0, xmm1
jbe 0x140028ef4
movsd qword [rcx - 8], xmm1
movsd qword [rcx - 0x10], xmm0
sub rcx, 0x20
dec r8
jne 0x140028e90
cmp rdx, rbx
jle 0x140028f28
movsd xmm0, qword [rsp + rdx*8 + 0x60]
movsd xmm1, qword [rsp + rdx*8 + 0x58]
comisd xmm0, xmm1
jbe 0x140028f20
movsd qword [rsp + rdx*8 + 0x60], xmm1
movsd qword [rsp + rdx*8 + 0x58], xmm0
dec rdx
cmp rdx, rbx
jg 0x140028f02
inc rbx
dec r9
dec r10
jne 0x140028e50
mov rdx, qword [r14]
sub rdx, 0x18
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x140028f53
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor al, al
jmp 0x140028feb
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x40], ebx
mov rax, qword [r14]
mov esi, dword [rax - 0x10]
mov ecx, 1
sub ecx, dword [rax - 8]
mov eax, dword [rax - 0xc]
or eax, ecx
jge 0x140028f8e
xor edx, edx
mov rcx, r14
call fcn.1400023b0
lea r8d, [rsi + rsi]
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x40]
mov rdx, qword [r14]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov ebx, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp ebx, 1
sete bl
mov rdx, qword [r14]
sub rdx, 0x18
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x140028fe8
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
movzx eax, bl
mov rcx, qword [rsp + 0x3c0]
xor rcx, rsp
call fcn.1400cdac0
mov rbx, qword [rsp + 0x400]
add rsp, 0x3d0
pop r14
pop rdi
pop rsi
ret