Function at 0x14000d3e0
Capabilities:
Write file on windows

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x40], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rsi, rdx
mov rdi, rcx
movzx eax, byte [rcx + 0x58]
cmp al, 1
je 0x14000d843
cmp al, 2
jne 0x14000d4e2
cmp qword [rdx + 8], 0
je 0x14000d843
xor r13d, r13d
lea r14, str.WriteConsoleW__
nop word [rax + rax]
mov ebx, 0x4000
cmp qword [rsi + 8], rbx
jae 0x14000d44e
mov ebx, dword [rsi + 8]
mov qword [rsp + 0x20], r13
lea r9, [rbp + 0x30]
mov r8d, ebx
mov rdx, qword [rsi]
mov rcx, qword [rdi + 0x50]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
je 0x14000d48d
mov ecx, dword [rbp + 0x30]
mov rdx, qword [rsi + 8]
cmp rcx, rdx
cmova rcx, rdx
lea rax, [rcx + rcx]
add qword [rsi], rax
sub rdx, rcx
mov qword [rsi + 8], rdx
mov byte [rdi + 0x59], 1
jmp 0x14000d4d3
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x28], 0xf
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [rdi + 0x18], r13b
jne 0x14000d4b8
mov byte [rdi + 0x18], 1
mov byte [rdi + 0x21], 1
movups xmm0, xmmword [rbp - 0x30]
movups xmmword [rdi + 0x28], xmm0
mov dword [rdi + 0x38], eax
mov ecx, ebx
mov rdx, qword [rsi + 8]
cmp rcx, rdx
cmova rcx, rdx
lea rax, [rcx + rcx]
add qword [rsi], rax
sub rdx, rcx
mov qword [rsi + 8], rdx
cmp qword [rsi + 8], r13
jne 0x14000d440
jmp 0x14000d843
mov qword [rbp - 0x30], rdi
mov qword [rbp - 0x28], rsi
mov rbx, qword [rdx + 8]
add rbx, rbx
mov r14, qword [rdx]
xor r13d, r13d
mov qword [rbp - 0x20], r13
mov r15d, r13d
mov qword [rbp - 0x18], r13
mov esi, r13d
mov qword [rbp - 0x10], r13
mov qword [rbp - 8], r13
lea rcx, [rbp - 0x30]
call fcn.14000d870
test al, al
je 0x14000d6a1
lea rdx, [rbx + 2]
lea rcx, [rbp - 0x20]
call fcn.14000b5e0
test rax, rax
jne 0x14000d6bf
cmp dword [rdi + 0x10], 0x4b1
je 0x14000d5a7
cmp qword [rbp - 0x20], rax
jne 0x14000d58d
mov rsi, qword [rbp - 0x10]
test rsi, rsi
je 0x14000d58d
mov r15, qword [rbp - 0x18]
mov byte [r15], 0xff
cmp rsi, 1
jbe 0x14000d573
mov byte [r15 + 1], 0xfe
lea rcx, [r15 + 2]
mov r8, rbx
mov rdx, r14
call fcn.140026080
jmp 0x14000d78a
mov r8d, 0x1f1
lea rdx, str.datavect_unsigned_char_::operator___
lea rcx, str._af___i_s_
call fcn.1400126e0
int3
mov r8d, 0x1f1
lea rdx, str.datavect_unsigned_char_::operator___
lea rcx, str._af___i_s_
call fcn.1400126e0
int3
cmp qword [rbp - 0x20], 0
jne 0x14000d687
mov rsi, qword [rbp - 0x10]
test rsi, rsi
je 0x14000d687
mov r15, qword [rbp - 0x18]
mov byte [r15], 0xfe
cmp rsi, 1
jbe 0x14000d66d
mov byte [r15 + 1], 0xff
test rbx, rbx
je 0x14000d78a
lea rdx, [r15 + 3]
or r9, 0xffffffffffffffff
sub r9, r15
mov r10, r15
neg r10
mov r11, r14
sub r11, r15
mov r8, 0xfffffffffffffffd
sub r8, r15
lea rax, [r9 + rdx]
cmp rax, rsi
jae 0x14000d653
lea rax, [r8 + rdx]
movzx ecx, byte [rax + r14 + 1]
mov byte [rdx - 1], cl
lea rax, [r10 + rdx]
cmp rax, rsi
jae 0x14000d639
movzx eax, byte [r11 + rdx - 3]
mov byte [rdx], al
add rdx, 2
lea rax, [r8 + rdx]
cmp rax, rbx
jb 0x14000d600
jmp 0x14000d78a
mov r8d, 0x1f1
lea rdx, str.datavect_unsigned_char_::operator___
lea rcx, str._af___i_s_
call fcn.1400126e0
int3
mov r8d, 0x1f1
lea rdx, str.datavect_unsigned_char_::operator___
lea rcx, str._af___i_s_
call fcn.1400126e0
int3
mov r8d, 0x1f1
lea rdx, str.datavect_unsigned_char_::operator___
lea rcx, str._af___i_s_
call fcn.1400126e0
int3
mov r8d, 0x1f1
lea rdx, str.datavect_unsigned_char_::operator___
lea rcx, str._af___i_s_
call fcn.1400126e0
int3
cmp dword [rdi + 0x10], 0x4b1
jne 0x14000d7a3
mov rdx, rbx
lea rcx, [rbp - 0x20]
call fcn.14000b5e0
test rax, rax
je 0x14000d6ee
cmp byte [rdi + 0x18], 0
jne 0x14000d6cd
mov byte [rdi + 0x20], 1
mov byte [rdi + 0x18], 1
mov rdx, qword [rbp - 0x18]
test rdx, rdx
je 0x14000d6e6
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x14000d6e6
mov rdi, rdx
xor eax, eax
rep stosb byte [rdi], al
mov rcx, rdx
jmp 0x14000d83e
mov rsi, qword [rbp - 0x10]
mov r15, qword [rbp - 0x18]
test rbx, rbx
je 0x14000d78a
mov rcx, r15
mov r9d, 1
sub r9, r15
mov r8, r14
sub r8, r15
mov rdx, r15
neg rdx
mov r10, qword [rbp - 0x20]
nop dword [rax + rax]
test r10, r10
jne 0x14000d770
lea rax, [rdx + rcx]
cmp rax, rsi
jae 0x14000d770
movzx eax, byte [rax + r14 + 1]
mov byte [rcx], al
lea rax, [r9 + rcx]
cmp rax, rsi
jae 0x14000d756
movzx eax, byte [r8 + rcx]
mov byte [rcx + 1], al
add rcx, 2
lea rax, [rdx + rcx]
cmp rax, rbx
jb 0x14000d720
jmp 0x14000d78a
mov r8d, 0x1f1
lea rdx, str.datavect_unsigned_char_::operator___
lea rcx, str._af___i_s_
call fcn.1400126e0
int3
mov r8d, 0x1f1
lea rdx, str.datavect_unsigned_char_::operator___
lea rcx, str._af___i_s_
call fcn.1400126e0
int3
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x28], rsi
movaps xmm0, xmmword [rbp - 0x30]
movdqa xmmword [rbp - 0x30], xmm0
mov r14, qword [rbp - 0x30]
mov rbx, qword [rbp - 0x28]
test rbx, rbx
je 0x14000d827
lea rsi, str.WriteFile__
nop
mov r12d, 0x10000
cmp rbx, r12
cmovb r12d, ebx
mov qword [rsp + 0x20], r13
lea r9, [rbp + 0x30]
mov r8d, r12d
mov rdx, r14
mov rcx, qword [rdi + 0x50]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x14000d7e3
mov eax, dword [rbp + 0x30]
mov byte [rdi + 0x59], 1
jmp 0x14000d811
mov qword [rbp - 0x30], rsi
mov qword [rbp - 0x28], 0xb
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [rdi + 0x18], 0
jne 0x14000d80e
mov byte [rdi + 0x18], 1
mov byte [rdi + 0x21], 1
movups xmm0, xmmword [rbp - 0x30]
movups xmmword [rdi + 0x28], xmm0
mov dword [rdi + 0x38], eax
mov eax, r12d
cmp rax, rbx
cmova rax, rbx
add r14, rax
sub rbx, rax
test rbx, rbx
jne 0x14000d7b0
mov rsi, qword [rbp - 0x10]
test r15, r15
je 0x14000d83b
test rsi, rsi
je 0x14000d83b
mov rdi, r15
xor eax, eax
mov rcx, rsi
rep stosb byte [rdi], al
mov rcx, r15
call fcn.140024f38
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret