Function at 0x140013d17
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
push rsi
pushf
rcl r12, 0
popf
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
add rsp, 0xffffffffffffff88
mov edi, 0
mov r14d, r8d
movsxd r15, ecx
mov rbx, r9
mov rsi, rdx
test r8d, r8d
je 0x1400140c8
test rdx, rdx
jne 0x140013da5
mov byte [r9 + 0x38], 1
mov r8d, 0
mov dword [r9 + 0x34], edi
mov edx, 0
mov byte [r9 + 0x30], 1
mov ecx, 0
mov dword [r9 + 0x2c], 0x16
mov r9d, 0
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
call fcn.14000b276
or eax, 0xffffffff
pushf
xor rcx, 0
pushf
rcl rbp, 0
popf
popf
jmp 0x1400140cd
mov rax, r15
lea rcx, [0x14003a820]
and eax, 0x3f
mov r12, r15
sar r12, 6
mov qword [rbp - 0x18], r12
lea r13, [rax + rax*8]
mov rcx, qword [rcx + r12*8]
pushf
dec rdx
inc rdx
popf
mov al, byte [rcx + r13*8 + 0x39]
mov byte [rbp - 0x48], al
sub al, 1
cmp al, 1
ja 0x140013dea
mov eax, r14d
not eax
test al, 1
je 0x140013d52
test byte [rcx + r13*8 + 0x38], 0x20
je 0x140013e03
mov edx, 0
mov ecx, r15d
lea r8d, [rdx + 2]
call fcn.1400186ad
mov ecx, r15d
mov qword [rbp - 0x30], rdi
call fcn.1400168df
lea rdx, [0x14003a820]
test eax, eax
je 0x140013f6b
mov rax, qword [rdx + r12*8]
cmp byte [rax + r13*8 + 0x38], dil
jge 0x140013f6b
pushf
add rbx, 0
popf
cmp byte [rbx + 0x28], dil
jne 0x140013e4a
mov rcx, rbx
call fcn.140008d3f
lea rdx, [0x14003a820]
mov rax, qword [rbx + 0x18]
cmp qword [rax + 0x138], rdi
jne 0x140013e6e
mov rax, qword [rdx + r12*8]
cmp byte [rax + r13*8 + 0x39], dil
pushf
shl rsp, 0
popf
je 0x140013f6b
mov rcx, qword [rdx + r12*8]
lea rdx, [rbp - 0x20]
mov rcx, qword [rcx + r13*8 + 0x28]
call qword [sym.imp.KERNEL32.dll_GetConsoleMode]
test eax, eax
je 0x140013f64
movsx ecx, byte [rbp - 0x48]
test ecx, ecx
je 0x140013f41
add ecx, 0xffffffff
je 0x140013eab
pushf
shl rax, 0
popf
cmp ecx, 1
jne 0x14001403a
lea r12, [rsi + r14]
pushf
add r12, 0
popf
mov qword [rbp - 0x40], rdi
mov r15, rsi
cmp rsi, r12
jae 0x140013f38
mov r14d, dword [rbp - 0x3c]
movzx eax, word [r15]
movzx ecx, ax
pushf
or rbp, rbp
popf
mov word [rbp - 0x48], ax
call fcn.1400186b5
movzx ecx, word [rbp - 0x48]
cmp ax, cx
jne 0x140013f2f
sub r14d, 0xfffffffe
mov dword [rbp - 0x3c], r14d
cmp cx, 0xa
jne 0x140013f1c
mov ecx, 0xd
call fcn.1400186b5
pushf
rcl rax, 0
popf
mov ecx, 0xd
cmp ax, cx
jne 0x140013f2f
add r14d, 1
mov dword [rbp - 0x3c], r14d
add edi, 1
sub r15, 0xfffffffffffffffe
cmp r15, r12
jae 0x140013f38
pushf
add rax, 0
popf
jmp 0x140013ec7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp - 0x40], eax
mov r12, qword [rbp - 0x18]
jmp 0x140014030
mov r9d, r14d
mov qword [rsp + 0x20], rbx
mov r8, rsi
lea rcx, [rbp - 0x40]
mov edx, r15d
call fcn.140013110
movsd xmm0, qword [rax]
mov edi, dword [rax + 8]
jmp 0x140014035
lea rdx, [0x14003a820]
mov rcx, qword [rdx + r12*8]
cmp byte [rcx + r13*8 + 0x38], dil
pushf
nop
popf
jge 0x140013ff2
movsx ecx, byte [rbp - 0x48]
pushf
jmp 0x140013f83
popf
test ecx, ecx
je 0x140013fd1
add ecx, 0xffffffff
je 0x140013fb5
cmp ecx, 1
jne 0x140014041
mov r9d, r14d
pushf
dec rcx
inc rcx
popf
lea rcx, [rbp - 0x40]
mov r8, rsi
mov edx, r15d
call fcn.140013832
jmp 0x140013f58
mov r9d, r14d
lea rcx, [rbp - 0x40]
mov r8, rsi
pushf
add rsp, 0
popf
mov edx, r15d
call fcn.1400139c3
jmp 0x140013f58
mov r9d, r14d
pushf
dec r15
inc r15
popf
lea rcx, [rbp - 0x40]
mov r8, rsi
mov edx, r15d
call fcn.1400136f1
jmp 0x140013f58
mov rcx, qword [rcx + r13*8 + 0x28]
lea r9, [rbp - 0x3c]
mov eax, 0
mov r8d, r14d
and qword [rsp + 0x20], rax
pushf
shr r10, 0
popf
mov rdx, rsi
mov qword [rbp - 0x40], rax
mov dword [rbp - 0x38], eax
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x14001402d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp - 0x40], eax
mov edi, dword [rbp - 0x38]
movsd xmm0, qword [rbp - 0x40]
movsd qword [rbp - 0x30], xmm0
lea rdx, [0x14003a820]
mov rax, qword [rbp - 0x30]
pushf
sub r11, 0
popf
shr rax, 0x20
test eax, eax
jne 0x1400140b9
pushf
push r9
pop r9
popf
mov eax, dword [rbp - 0x30]
test eax, eax
je 0x140014090
cmp eax, 5
jne 0x140014080
mov byte [rbx + 0x30], 1
mov dword [rbx + 0x2c], 9
mov byte [rbx + 0x38], 1
mov dword [rbx + 0x34], eax
jmp 0x140013d8d
mov ecx, dword [rbp - 0x30]
mov rdx, rbx
call fcn.14000b4af
jmp 0x140013d8d
mov rax, qword [rdx + r12*8]
test byte [rax + r13*8 + 0x38], 0x40
je 0x1400140a1
cmp byte [rsi], 0x1a
je 0x1400140c8
and dword [rbx + 0x34], 0
mov byte [rbx + 0x30], 1
mov dword [rbx + 0x2c], 0x1c
mov byte [rbx + 0x38], 1
jmp 0x140013d8d
mov eax, dword [rbp - 0x2c]
sub eax, edi
pushf
rcr rdx, 0
popf
jmp 0x1400140cd
mov eax, 0
sub rsp, 0xffffffffffffff88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret