Function at 0x18000cfa0
Capabilities:
Write file on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rsp + 0xb0], rbx
mov r13d, edx
mov r12, rcx
cmp edx, 0xffffffff
jne 0x18000cfd3
xor eax, eax
jmp 0x18000d4b6
mov rcx, qword [rcx + 0x48]
cmp qword [rcx], 0
je 0x18000d00c
mov rcx, qword [rcx]
mov rdx, qword [r12 + 0x60]
movsxd rax, dword [rdx]
add rax, rcx
cmp rcx, rax
jae 0x18000d00c
dec dword [rdx]
mov rcx, qword [r12 + 0x48]
mov rdx, qword [rcx]
lea rax, [rdx + 1]
mov qword [rcx], rax
mov byte [rdx], r13b
mov eax, r13d
jmp 0x18000d4b6
mov rdx, qword [r12 + 0x88]
test rdx, rdx
jne 0x18000d021
or eax, 0xffffffff
jmp 0x18000d4b6
cmp qword [r12 + 0x70], 0
jne 0x18000d043
movsx ecx, r13b
call fcn.180027768
or rbp, 0xffffffffffffffff
cmp eax, ebp
cmovne ebp, r13d
mov eax, ebp
jmp 0x18000d4b6
mov byte [rsp + 0xb8], r13b
mov edx, 0xf
mov qword [rsp + 0x68], rdx
mov byte [rsp + 0x50], 0
xor ecx, ecx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], 8
lea rax, [rsp + 0x50]
cmp rdx, 0x10
cmovae rax, rcx
mov byte [rax + 8], cl
or rbp, 0xffffffffffffffff
xor r15d, r15d
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
cmp rdx, 0x10
jb 0x18000d0a0
mov rdi, rcx
test rcx, rcx
je 0x18000d0cc
jmp 0x18000d0a5
lea rdi, [rsp + 0x50]
lea rax, [rsp + 0x50]
cmp rdx, 0x10
cmovae rax, rcx
cmp rax, rdi
ja 0x18000d0cc
lea rax, [rsp + 0x50]
cmp rdx, 0x10
cmovae rax, rcx
add rax, r8
cmp rdi, rax
jbe 0x18000d0e0
call fcn.180026ca0
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x48]
cmp rax, 0xfffffffffffffffc
je 0x18000d114
lea rax, [rsp + 0x50]
cmp rdx, 0x10
cmovae rax, rcx
add rax, r8
cmp rdi, rax
jb 0x18000d114
call fcn.180026ca0
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
mov rsi, r8
cmp rdx, 0x10
jb 0x18000d127
mov rbx, rcx
test rcx, rcx
je 0x18000d153
jmp 0x18000d12c
lea rbx, [rsp + 0x50]
lea rax, [rsp + 0x50]
cmp rdx, 0x10
cmovae rax, rcx
cmp rax, rbx
ja 0x18000d153
lea rax, [rsp + 0x50]
cmp rdx, 0x10
cmovae rax, rcx
add rax, r8
cmp rbx, rax
jbe 0x18000d167
call fcn.180026ca0
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x48]
cmp rax, 0xfffffffffffffffc
je 0x18000d18c
lea rax, [rsp + 0x50]
cmp rdx, 0x10
cmovae rax, rcx
add rax, r8
cmp rbx, rax
jb 0x18000d18c
call fcn.180026ca0
mov rcx, qword [r12 + 0x70]
mov r10, qword [rcx]
lea rax, [rdi + rsi]
lea rdx, [rsp + 0xc0]
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbx
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xb9]
lea r8, [rsp + 0xb8]
lea rdx, [r12 + 0x7c]
call qword [r10 + 0x28]
test eax, eax
js 0x18000d4a2
cmp eax, 1
jg 0x18000d46b
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x18000d200
mov rbx, rcx
test rcx, rcx
je 0x18000d231
jmp 0x18000d205
lea rbx, [rsp + 0x50]
lea rax, [rsp + 0x50]
cmp rdx, 0x10
cmovae rax, rcx
cmp rax, rbx
ja 0x18000d231
lea rax, [rsp + 0x50]
cmp rdx, 0x10
cmovae rax, rcx
mov r8, qword [rsp + 0x60]
add rax, r8
cmp rbx, rax
jbe 0x18000d245
call fcn.180026ca0
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x48]
cmp rax, 0xfffffffffffffffc
je 0x18000d279
lea rax, [rsp + 0x50]
cmp rdx, 0x10
cmovae rax, rcx
add rax, r8
cmp rbx, rax
jb 0x18000d279
call fcn.180026ca0
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0xc0]
sub rdi, rbx
je 0x18000d32f
cmp rdx, 0x10
jb 0x18000d29a
mov rbx, rcx
test rcx, rcx
je 0x18000d2c6
jmp 0x18000d29f
lea rbx, [rsp + 0x50]
lea rax, [rsp + 0x50]
cmp rdx, 0x10
cmovae rax, rcx
cmp rax, rbx
ja 0x18000d2c6
lea rax, [rsp + 0x50]
cmp rdx, 0x10
cmovae rax, rcx
add rax, r8
cmp rbx, rax
jbe 0x18000d2da
call fcn.180026ca0
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x48]
cmp rax, 0xfffffffffffffffc
je 0x18000d2ff
lea rax, [rsp + 0x50]
cmp rdx, 0x10
cmovae rax, rcx
add rax, r8
cmp rbx, rax
jb 0x18000d2ff
call fcn.180026ca0
mov r9, qword [r12 + 0x88]
mov r8, rdi
mov edx, 1
mov rcx, rbx
call fcn.180027f3c
cmp rdi, rax
jne 0x18000d436
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
mov byte [r12 + 0x79], 1
lea rax, [rsp + 0xb8]
cmp qword [rsp + 0xc8], rax
jne 0x18000d45b
test rdi, rdi
jne 0x18000d090
cmp r8, 0x20
jae 0x18000d44c
mov rax, rbp
sub rax, r8
cmp rax, 8
ja 0x18000d37e
call fcn.18002433c
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
lea rbx, [r8 + 8]
cmp rbx, 0xfffffffffffffffe
jbe 0x18000d39c
call fcn.18002433c
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
cmp rdx, rbx
jae 0x18000d3bf
mov rdx, rbx
lea rcx, [rsp + 0x48]
call fcn.18000bb70
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
jmp 0x18000d3ed
test rbx, rbx
jne 0x18000d3ed
mov qword [rsp + 0x60], r15
lea rax, [rsp + 0x50]
cmp rdx, 0x10
cmovae rax, rcx
mov byte [rax], r15b
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
jmp 0x18000d090
test rbx, rbx
je 0x18000d090
lea rax, [rsp + 0x50]
cmp rdx, 0x10
cmovae rax, rcx
xor ecx, ecx
mov qword [r8 + rax], rcx
mov qword [rsp + 0x60], rbx
lea rax, [rsp + 0x50]
cmp qword [rsp + 0x68], 0x10
cmovae rax, qword [rsp + 0x50]
mov byte [rbx + rax], cl
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
jmp 0x18000d090
cmp qword [rsp + 0x68], 0x10
jb 0x18000d448
mov rcx, qword [rsp + 0x50]
call fcn.180024ab8
mov eax, ebp
jmp 0x18000d4b6
cmp rdx, 0x10
jb 0x18000d457
call fcn.180024ab8
mov eax, ebp
jmp 0x18000d4b6
cmp rdx, 0x10
jb 0x18000d466
call fcn.180024ab8
mov eax, r13d
jmp 0x18000d4b6
cmp eax, 3
jne 0x18000d4a2
movsx ecx, byte [rsp + 0xb8]
mov rdx, qword [r12 + 0x88]
call fcn.180027768
cmp eax, 0xffffffff
cmovne ebp, r13d
cmp qword [rsp + 0x68], 0x10
jb 0x18000d49e
mov rcx, qword [rsp + 0x50]
call fcn.180024ab8
mov eax, ebp
jmp 0x18000d4b6
cmp qword [rsp + 0x68], 0x10
jb 0x18000d4b4
mov rcx, qword [rsp + 0x50]
call fcn.180024ab8
mov eax, ebp
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret