Function at 0x2016c7c20
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x158
movups xmmword [rsp + 0xb0], xmm6
movups xmmword [rsp + 0xc0], xmm7
movups xmmword [rsp + 0xd0], xmm8
movups xmmword [rsp + 0xe0], xmm9
movups xmmword [rsp + 0xf0], xmm10
movups xmmword [rsp + 0x100], xmm11
movups xmmword [rsp + 0x110], xmm12
movups xmmword [rsp + 0x120], xmm13
movups xmmword [rsp + 0x130], xmm14
movups xmmword [rsp + 0x140], xmm15
cmp qword [0x201700f18], 0
mov qword [rsp + 0x1a0], rcx
mov qword [rsp + 0x1a8], rdx
mov byte [rsp + 0x6f], 1
je 0x2016c7f33
lea rcx, [0x2016dd0e0]
call fcn.2016d7330
mov rdx, rax
mov qword [rsp + 0x50], rax
mov rax, qword [rax]
cmp qword [rsp + 0x1a0], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x70]
mov qword [rdx], rax
lea rax, [0x2016c7fb0]
mov qword [rsp + 0x80], rbp
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rsp
je 0x2016c8030
mov rax, qword [rsp + 0x1a0]
mov qword [rsp + 0x38], 0
cmp byte [rax], 0
je 0x2016c8070
nop dword [rax + rax]
add qword [rsp + 0x38], 1
mov rsi, qword [rsp + 0x1a0]
mov rax, qword [rsp + 0x38]
cmp byte [rsi + rax], 0
jne 0x2016c7d28
cmp rax, 7
mov rbx, rax
mov eax, 7
cmovge rax, rbx
mov qword [rsp + 0x58], rax
add rax, 0x21
mov qword [rsp + 0x40], rax
lea rcx, [0x2016dd120]
call fcn.2016d7330
mov rdx, qword [rsp + 0x40]
mov rcx, rax
call fcn.2016c4b60
mov rdx, rax
mov qword [rax + 8], 1
lea r11, [rax + 0x10]
mov rax, qword [rsp + 0x38]
mov r10, r11
lea rbx, [rdx + 0x20]
movq xmm0, rax
movhps xmm0, qword [rsp + 0x58]
movups xmmword [rdx + 0x10], xmm0
test rax, rax
je 0x2016c7ee7
mov rdi, rax
mov r9, rax
lea r8, [rax - 1]
mov rax, qword [rsp + 0x1a0]
lea rcx, [rax + 1]
mov rax, rbx
sub rax, rcx
cmp rax, 0xe
jbe 0x2016c8040
cmp r8, 6
jbe 0x2016c8040
cmp r8, 0xe
jbe 0x2016c8087
and rdi, 0xfffffffffffffff0
xor eax, eax
mov rcx, rdi
nop dword [rax]
mov rdi, qword [rsp + 0x1a0]
movdqu xmm1, xmmword [rdi + rax]
movups xmmword [rdx + rax + 0x20], xmm1
add rax, 0x10
movups xmmword [rsp + 0x40], xmm1
cmp rax, rcx
jne 0x2016c7df0
mov rsi, qword [rsp + 0x38]
mov rcx, rsi
and rcx, 0xfffffffffffffff0
mov rax, rcx
cmp rsi, rcx
je 0x2016c7ee7
sub rsi, rcx
sub r8, rcx
mov r9, rsi
cmp r8, 6
jbe 0x2016c7e5b
mov rdi, qword [rsp + 0x1a0]
mov r8, qword [rdi + rcx]
mov qword [rdx + rcx + 0x20], r8
mov rcx, r9
and rcx, 0xfffffffffffffff8
add rax, rcx
cmp rcx, r9
je 0x2016c7ee7
mov rsi, qword [rsp + 0x1a0]
mov rdi, qword [rsp + 0x38]
movzx ecx, byte [rsi + rax]
mov byte [rdx + rax + 0x20], cl
lea rcx, [rax + 1]
cmp rcx, rdi
jge 0x2016c7ee7
movzx ecx, byte [rsi + rax + 1]
mov byte [rbx + rax + 1], cl
lea rcx, [rax + 2]
mov rbx, rdi
cmp rcx, rdi
jge 0x2016c7ee7
movzx r8d, byte [rsi + rax + 2]
lea rcx, [rax + 3]
mov byte [rdx + rax + 0x22], r8b
cmp rdi, rcx
jle 0x2016c7ee7
movzx r8d, byte [rsi + rax + 3]
lea rcx, [rax + 4]
mov byte [rdx + rax + 0x23], r8b
cmp rbx, rcx
jle 0x2016c7ee7
movzx r8d, byte [rsi + rax + 4]
lea rcx, [rax + 5]
mov byte [rdx + rax + 0x24], r8b
cmp rbx, rcx
jle 0x2016c7ee7
movzx r8d, byte [rsi + rax + 5]
lea rcx, [rax + 6]
mov byte [rdx + rax + 0x25], r8b
cmp rbx, rcx
jle 0x2016c7ee7
movzx eax, byte [rsi + rax + 6]
mov byte [rdx + rcx + 0x20], al
mov rax, qword [rsp + 0x38]
mov byte [r11 + rax + 0x10], 0
mov rcx, r10
call qword [0x201700f18]
mov rbx, qword [rsp + 0x50]
cmp qword [rsp + 0x78], 0
mov byte [rsp + 0x6f], 0
mov rax, qword [rbx]
mov rax, qword [rax]
mov qword [rbx], rax
je 0x2016c7f33
lea rcx, [0x2016dd0c0]
call fcn.2016d7330
mov rcx, qword [rax]
test rcx, rcx
je 0x2016c8090
call fcn.2016c8910
movzx eax, byte [rsp + 0x6f]
test al, al
jne 0x2016c7ff1
movups xmm6, xmmword [rsp + 0xb0]
movups xmm7, xmmword [rsp + 0xc0]
movups xmm8, xmmword [rsp + 0xd0]
movups xmm9, xmmword [rsp + 0xe0]
movups xmm10, xmmword [rsp + 0xf0]
movups xmm11, xmmword [rsp + 0x100]
movups xmm12, xmmword [rsp + 0x110]
movups xmm13, xmmword [rsp + 0x120]
movups xmm14, xmmword [rsp + 0x130]
movups xmm15, xmmword [rsp + 0x140]
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 2
call qword [fcn.2016dc8f0]
mov r8, qword [rsp + 0x1a8]
mov rcx, qword [rsp + 0x1a0]
mov r9, rax
mov edx, 1
mov qword [rsp + 0x38], rax
call sub.msvcrt.dll_fwrite
mov rcx, qword [rsp + 0x38]
call fcn.2016dc1d8
jmp 0x2016c7f40
xor r10d, r10d
jmp 0x2016c7ef2
xor eax, eax
nop word [rax + rax]
mov rbx, qword [rsp + 0x1a0]
movzx ecx, byte [rbx + rax]
mov byte [rdx + rax + 0x20], cl
add rax, 1
cmp qword [rsp + 0x38], rax
jne 0x2016c8048
jmp 0x2016c7ee7
mov qword [rsp + 0x40], 0x28
mov qword [rsp + 0x58], 7
jmp 0x2016c7d5f
xor ecx, ecx
xor eax, eax
jmp 0x2016c7e37
lea rcx, [0x2016dd120]
call fcn.2016d7330
mov rcx, rax
mov edx, 0x30
call fcn.2016c5480
mov rdx, rax
mov rax, qword [0x2016fb6f0]
lea rcx, [0x2016de3e0]
mov qword [rsp + 0x38], rdx
mov qword [rdx], rax
lea rax, str.ReraiseDefect
mov qword [rdx + 0x10], rax
call fcn.2016c4de0
mov rcx, qword [rsp + 0x38]
lea r9, str.fatal.nim
lea r8, str.sysFatal
lea rdx, str.ReraiseDefect
mov qword [rcx + 0x18], rax
mov qword [rsp + 0x20], 0x35
call fcn.2016c7ba0
nop
nop