Function at 0x445c10
Capabilities:
Write file on windows

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x50
mov rbx, rcx
mov ebp, edx
mov rdi, r9
test edx, edx
je 0x445e00
lea r14, [0x00496420]
cmp r8d, 0x20
je 0x445c65
lea r14, str.0000000000000000
cmp r8d, 0x30
je 0x445c65
lea r14, [rsp + 0x30]
lea rdx, [rsp + 0x50]
mov rax, r14
nop dword [rax]
mov word [rax], r8w
add rax, 2
cmp rax, rdx
jne 0x445c58
xor r12d, r12d
cmp rdi, 0xf
jle 0x445cbf
mov r13d, 0x10
nop dword [rax]
mov edx, dword [rbx + 0x20]
test edx, edx
je 0x445d08
mov rdx, qword [rbx]
test ebp, ebp
je 0x445ce0
xor esi, esi
jmp 0x445c93
mov rdx, qword [rbx]
movzx ecx, word [r14 + rsi*2]
call sym.fputwc
cmp ax, 0xffff
je 0x445df0
add rsi, 1
cmp rsi, 0x10
jne 0x445c90
add r12, 0x10
sub rdi, 0x10
cmp rdi, 0xf
jg 0x445c78
test rdi, rdi
jg 0x445da0
mov rax, r12
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov r9, rdx
mov r8d, 0x10
mov edx, 1
mov rcx, r14
call sym.fwrite
add r12, rax
cmp rax, 0x10
je 0x445cb5
jmp 0x445cc8
cmp qword [rbx + 0x10], 0x10
mov rdx, r13
cmovbe rdx, qword [rbx + 0x10]
mov rax, qword [rbx + 8]
cmp edx, 8
jae 0x445d50
test dl, 4
jne 0x445e88
test edx, edx
je 0x445d3a
movzx ecx, byte [r14]
mov byte [rax], cl
test dl, 2
jne 0x445e9e
add qword [rbx + 8], rdx
sub qword [rbx + 0x10], rdx
add qword [rbx + 0x18], 0x10
jmp 0x445cb1
mov rcx, qword [r14]
lea r9, [rax + 8]
mov r11, r14
and r9, 0xfffffffffffffff8
mov qword [rax], rcx
mov ecx, edx
mov r8, qword [r14 + rcx - 8]
mov qword [rax + rcx - 8], r8
sub rax, r9
sub r11, rax
add eax, edx
and eax, 0xfffffff8
cmp eax, 8
jb 0x445d3a
and eax, 0xfffffff8
xor ecx, ecx
mov r8d, ecx
add ecx, 8
mov r10, qword [r11 + r8]
mov qword [r9 + r8], r10
cmp ecx, eax
jb 0x445d82
jmp 0x445d3a
mov eax, dword [rbx + 0x20]
test eax, eax
jne 0x445e48
cmp qword [rbx + 0x10], rdi
mov rdx, rdi
cmovbe rdx, qword [rbx + 0x10]
mov rax, qword [rbx + 8]
cmp edx, 8
jae 0x445eb1
test dl, 4
jne 0x445f16
test edx, edx
je 0x445de0
movzx ecx, byte [r14]
mov byte [rax], cl
test dl, 2
jne 0x445f2c
add qword [rbx + 8], rdx
mov rsi, rdi
sub qword [rbx + 0x10], rdx
add qword [rbx + 0x18], rdi
nop
add r12, rsi
jmp 0x445cc8
lea r14, [0x00496450]
cmp r8d, 0x20
je 0x445c65
lea r14, [0x00496440]
cmp r8d, 0x30
je 0x445c65
lea r14, [rsp + 0x20]
lea rdx, [rsp + 0x30]
mov rax, r14
nop
mov byte [rax], r8b
add rax, 1
cmp rdx, rax
jne 0x445e30
jmp 0x445c65
mov rdx, qword [rbx]
test ebp, ebp
je 0x445efb
xor esi, esi
jmp 0x445e63
mov rdx, qword [rbx]
movzx ecx, word [r14 + rsi*2]
call sym.fputwc
cmp ax, 0xffff
je 0x445df0
add rsi, 1
cmp rdi, rsi
jne 0x445e60
jmp 0x445df0
mov ecx, dword [r14]
mov dword [rax], ecx
mov ecx, edx
mov r8d, dword [r14 + rcx - 4]
mov dword [rax + rcx - 4], r8d
jmp 0x445d3a
mov ecx, edx
movzx r8d, word [r14 + rcx - 2]
mov word [rax + rcx - 2], r8w
jmp 0x445d3a
mov rcx, qword [r14]
lea r9, [rax + 8]
and r9, 0xfffffffffffffff8
mov qword [rax], rcx
mov ecx, edx
mov r8, qword [r14 + rcx - 8]
mov qword [rax + rcx - 8], r8
sub rax, r9
sub r14, rax
add eax, edx
and eax, 0xfffffff8
cmp eax, 8
jb 0x445de0
and eax, 0xfffffff8
xor ecx, ecx
mov r8d, ecx
add ecx, 8
mov r10, qword [r14 + r8]
mov qword [r9 + r8], r10
cmp ecx, eax
jb 0x445ee4
jmp 0x445de0
mov r9, rdx
mov r8, rdi
mov edx, 1
mov rcx, r14
call sym.fwrite
mov rsi, rax
jmp 0x445df0
mov ecx, dword [r14]
mov dword [rax], ecx
mov ecx, edx
mov r8d, dword [r14 + rcx - 4]
mov dword [rax + rcx - 4], r8d
jmp 0x445de0
mov ecx, edx
movzx r8d, word [r14 + rcx - 2]
mov word [rax + rcx - 2], r8w
jmp 0x445de0