Function at 0x14001f5f0
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
pxor xmm0, xmm0
comisd xmm1, xmm0
mov dword [rsp + 0xf8], r9d
mov rsi, rcx
mov ebp, r8d
jae 0x14001f623
xorpd xmm1, xmmword [0x14002c250]
mov rax, qword [0x14002c9c0]
movsxd rdx, dword [rsp + 0x100]
lea rcx, [rsp + 0x40]
mov r8d, 0x12
mov qword [rsp + 0x30], rcx
mov rax, qword [rax + 8]
addsd xmm1, qword [rax + rdx*8]
call sym.strconv__f64_to_str
mov r8, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov rdi, r8
mov r11, rcx
mov r15d, r8d
sar rdi, 0x20
mov r12d, edi
cmp r8d, 2
jg 0x14001fa98
mov qword [rsp + 0x78], 0
movzx ebx, byte [rcx]
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x7a], 0
mov qword [rsp + 0x82], 0
test r8d, r8d
jle 0x14001fef3
mov eax, 1
xor edx, edx
mov r14d, 1
xor r12d, r12d
mov r13d, 1
jmp 0x14001f6f3
cmp r11b, 0x2b
je 0x14001f710
lea r9d, [r11 - 0x30]
cmp r9b, 9
ja 0x14001f720
movsxd r9, r12d
add r12d, 1
mov byte [rsp + r9 + 0x70], r11b
mov r11d, eax
movsxd r9, eax
add rdx, 1
add eax, 1
movzx ebx, byte [rcx + r9]
cmp r15d, r11d
jle 0x14001f758
movzx r11d, byte [rcx + rdx]
cmp r11b, 0x2d
jne 0x14001f6c0
mov r11d, eax
mov r13d, 0xffffffff
jmp 0x14001f6df
mov r11d, eax
mov r13d, 1
jmp 0x14001f6df
cmp r11b, 0x2e
jne 0x14001f740
lea r14d, [rdx - 1]
cmp r13d, 1
mov r11d, eax
cmove r14d, edx
jmp 0x14001f6df
cmp r11b, 0x65
jne 0x14001fb1f
lea r11d, [rdx + 1]
movsxd rax, r11d
movzx ebx, byte [rcx + rax]
nop dword [rax]
movsxd r12, r12d
mov byte [rsp + r12 + 0x70], 0
cmp bl, 0x2d
je 0x14001fb00
xor eax, eax
mov dword [rsp + 0x28], 1
cmp bl, 0x2b
sete al
add r11d, eax
cmp r8d, r11d
jle 0x14001fecb
movsxd rax, r11d
sub r8d, r11d
xor ebx, ebx
add rax, rcx
add r8, rax
nop dword [rax]
movzx edx, byte [rax]
lea ecx, [rbx + rbx*4]
add rax, 1
lea ebx, [rdx + rcx*2 - 0x30]
cmp rax, r8
jne 0x14001f798
lea r15d, [rbx + 0x20]
xor ecx, ecx
test r15d, r15d
cmovns ecx, r15d
movsxd rcx, ecx
call sym.vcalloc_noscan
mov r12, rax
test r15d, r15d
jle 0x14001fe9f
test r15d, r15d
mov r8d, r15d
mov eax, 1
mov rcx, r12
cmovle r8, rax
xor edx, edx
call sym.memset
cmp edi, 0xfa1d05ee
je 0x14001fe50
xor edi, edi
cmp r13d, 1
je 0x14001f803
mov byte [r12], 0x2d
mov edi, 1
cmp dword [rsp + 0x28], 0xffffffff
je 0x14001fce0
movzx eax, byte [rsp + 0x70]
test al, al
je 0x14001fee5
mov edx, 1
mov r15d, 0xffffffff
lea r8, [rsp + 0x6f]
jmp 0x14001f857
jne 0x14001fb18
movsxd rcx, eax
add edi, 2
mov r15d, eax
mov byte [r12 + rcx], 0x2e
lea rcx, [rdx + 1]
sub ebx, 1
movzx eax, byte [r8 + rcx]
test al, al
je 0x14001f879
mov rdx, rcx
movsxd rcx, edi
mov byte [r12 + rcx], al
lea eax, [rdi + 1]
cmp r14d, edx
jg 0x14001f86a
test ebx, ebx
jns 0x14001f830
lea rcx, [rdx + 1]
mov edi, eax
movzx eax, byte [r8 + rcx]
test al, al
jne 0x14001f854
mov r14d, edx
test ebx, ebx
js 0x14001f89b
movsxd rax, ebx
movsxd rcx, edi
lea edi, [rbx + rdi + 1]
mov edx, 0x30
add rcx, r12
lea r8, [rax + 1]
call sym.memset
mov edx, dword [rsp + 0x100]
test edx, edx
jle 0x14001fc20
cmp r15d, 0xffffffff
je 0x14001fe00
mov ecx, dword [rsp + 0x100]
mov edi, dword [rsp + 0x100]
mov rdx, r12
add ecx, r15d
lea r8d, [rdi - 1]
lea r15d, [rcx + 1]
sub rdx, r8
movsxd r8, ecx
movsxd rbx, r15d
add rdx, r8
lea rax, [r12 + rbx]
mov byte [rax], 0
nop dword [rax + rax]
cmp byte [rax - 1], 0
jne 0x14001f8f2
mov byte [rax - 1], 0x30
sub rax, 1
cmp rax, rdx
jne 0x14001f8e8
test r12, r12
je 0x14001fe4a
add ecx, 2
movsxd rcx, ecx
call sym.malloc_noscan
mov r11, rax
mov rdx, r12
mov rcx, r11
mov r8, rbx
xor r12d, r12d
call sym.memcpy
mov byte [rax + rbx], 0
mov r11, rax
movzx eax, byte [rax]
cmp al, 0x5b
je 0x14001fb3e
cmp byte [rsp + 0x120], 0
jne 0x14001fc60
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
cmp bpl, 0x30
je 0x14001fca0
cmp byte [rsp + 0x108], 0
jne 0x14001fae0
mov byte [rsp + 0x50], 0x2d
lea ebx, [r15 + 1]
lea rcx, [rsp + 0x51]
xor edi, edi
xor r14d, r14d
mov qword [rsp + 0x28], 0
lea r13, [rsp + 0x50]
movsxd r8, r15d
mov rdx, r11
call sym.memcpy
mov r9d, dword [rsp + 0xf8]
mov eax, dword [rsp + 0x118]
sub r9d, ebx
lea r15d, [r9 + rdi]
movsxd r9, ebx
test eax, eax
jne 0x14001fbd0
test r15d, r15d
jle 0x14001ff19
lea rdi, [rsp + 0x70]
movsxd rcx, r14d
movzx edx, bpl
mov r8d, r15d
add rcx, rdi
add r14d, r15d
mov qword [rsp + 0x28], r9
call sym.memset
mov r8, qword [rsp + 0x28]
movsxd rcx, r14d
mov rdx, r13
add rcx, rdi
add ebx, r14d
call sym.memcpy
movsxd rbx, ebx
mov rcx, rdi
mov byte [rsp + rbx + 0x70], 0
call sym.strlen
mov rbx, rax
test rax, rax
je 0x14001fb68
lea ecx, [rax + 1]
mov r15d, eax
movsxd rcx, ecx
call sym.malloc_noscan
mov r11, rax
cmp ebx, 8
jae 0x14001fd60
test bl, 4
jne 0x14001ff8e
test ebx, ebx
je 0x14001fa88
movzx eax, byte [rsp + 0x70]
mov byte [r11], al
test bl, 2
jne 0x14001ffa5
mov byte [r11 + rbx], 0
xor r13d, r13d
jmp 0x14001fb78
movzx eax, byte [rcx]
cmp al, 0x6e
je 0x14001f935
cmp byte [rcx + 1], 0x69
je 0x14001f92d
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x7a], 0
mov qword [rsp + 0x82], 0
jmp 0x14001f6a7
cmp byte [rsp + 0x110], 0
je 0x14001fcc1
mov byte [rsp + 0x50], 0x2b
jmp 0x14001f9ae
mov dword [rsp + 0x28], 0xffffffff
add r11d, 1
jmp 0x14001f77d
mov edi, eax
jmp 0x14001f844
cmp edi, 0xfa1d05ee
je 0x14001ffb7
mov r12d, 1
lea r11, str._Float_conversion_error___
mov r15d, 0x1a
mov r13d, r12d
mov rax, rsi
mov qword [rsi], r11
mov dword [rsi + 8], r15d
mov dword [rsi + 0xc], r13d
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r13d, 1
xor r15d, r15d
lea r11, [0x14002bed8]
cmp r12d, 0xfa1d05ee
jne 0x14001fb41
mov qword [rsp + 0x28], r11
mov ecx, 1
mov ebx, 0x1e
lea rdi, str.double_string.free___detected_n
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov r12, qword [rsp + 0x28]
mov rbp, rax
nop dword [rax]
mov r8, rbx
mov rcx, rdi
mov r9, rbp
mov edx, 1
call sym.fwrite
sub rbx, rax
add rdi, rax
test rbx, rbx
jg 0x14001fba8
mov r11, r12
jmp 0x14001fb41
mov rcx, qword [rsp + 0x28]
lea rdi, [rsp + 0x70]
mov r8, r9
mov rdx, r13
add ebx, r14d
add rcx, rdi
call sym.memcpy
cmp dword [rsp + 0x118], 1
jne 0x14001fa34
test r15d, r15d
jle 0x14001fa34
movsxd rcx, ebx
movzx edx, bpl
mov r8d, r15d
add ebx, r15d
add rcx, rdi
call sym.memset
jmp 0x14001fa34
cmp r15d, 0xffffffff
je 0x14001fde0
test r12, r12
je 0x14001fe4a
test r15d, r15d
jne 0x14001fde9
cmp byte [rsp + 0x120], 0
mov r12d, 1
lea r11, [0x14002bed8]
je 0x14001f943
nop word [rax + rax]
mov rcx, qword [rsp + 0x30]
mov r8d, r15d
mov rdx, r11
call sym.strconv__remove_tail_zeros.isra.0
mov rax, qword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
mov r15d, eax
sar rax, 0x20
mov r13, rax
cmp r12d, 0xfa1d05ee
je 0x14001ff39
mov r12d, r13d
jmp 0x14001f943
cmp byte [rsp + 0x108], 0
je 0x14001fdb0
cmp byte [rsp + 0x110], 0
mov eax, 0x2b
jne 0x14001fdb5
lea r13, [rsp + 0x50]
mov ebx, r15d
xor edi, edi
xor r14d, r14d
mov qword [rsp + 0x28], 0
mov rcx, r13
jmp 0x14001f9ca
test ebx, ebx
jle 0x14001fec0
movsxd rax, edi
lea r15d, [rdi + 1]
sub ebx, 1
add edi, 2
mov byte [r12 + rax], 0x30
movsxd rax, r15d
mov byte [r12 + rax], 0x2e
jmp 0x14001fd16
movsxd rax, edi
sub ebx, 1
add edi, 1
mov byte [r12 + rax], 0x30
test ebx, ebx
jne 0x14001fd08
movzx edx, byte [rsp + 0x70]
test dl, dl
je 0x14001ff86
lea eax, [rdi + 1]
movsxd rcx, edi
lea rdi, [rsp + 0x70]
xor r14d, r14d
cdqe
sub rdi, rcx
nop word [rax + rax]
mov byte [r12 + rax - 1], dl
mov rcx, rax
add rax, 1
add r14d, 1
movzx edx, byte [rdi + rax - 1]
test dl, dl
jne 0x14001fd40
mov edi, ecx
jmp 0x14001f89b
mov rax, qword [rsp + 0x70]
lea r8, [r11 + 8]
and r8, 0xfffffffffffffff8
mov qword [r11], rax
mov eax, ebx
mov rdx, qword [rdi + rax - 8]
mov qword [r11 + rax - 8], rdx
mov rax, r11
sub rax, r8
sub rdi, rax
add eax, ebx
and eax, 0xfffffff8
cmp eax, 8
jb 0x14001fa88
and eax, 0xfffffff8
xor edx, edx
mov ecx, edx
add edx, 8
mov r9, qword [rdi + rcx]
mov qword [r8 + rcx], r9
cmp edx, eax
jb 0x14001fd98
jmp 0x14001fa88
mov eax, 0x2d
lea r13, [rsp + 0x50]
mov byte [rsp + 0x70], al
mov ebx, r15d
mov edi, 0xffffffff
mov qword [rsp + 0x28], 1
mov rcx, r13
mov r14d, 1
jmp 0x14001f9ca
lea r15d, [r14 + 1]
test r12, r12
je 0x14001fe4a
lea ecx, [r15 + 1]
movsxd rbx, r15d
movsxd rcx, ecx
call sym.malloc_noscan
mov r11, rax
jmp 0x14001f912
movsxd rax, edi
add edi, 1
mov r8d, dword [rsp + 0x100]
mov edx, 0x30
mov byte [r12 + rax], 0x2e
movsxd rcx, edi
add rcx, r12
call sym.memset
mov r15d, dword [rsp + 0x100]
mov eax, dword [rsp + 0x100]
add r15d, edi
lea ecx, [rdi + rax - 1]
movsxd rbx, r15d
mov byte [r12 + rbx], 0
test r12, r12
jne 0x14001f904
call sym.tos.part.0
nop
lea r15, str.double_string.free___detected_n
mov edi, 0x1e
mov ecx, 1
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov dword [rsp + 0x3c], ebx
mov rbx, r15
mov r15, rdi
mov rdi, rax
nop dword [rax]
mov r8, r15
mov rcx, rbx
mov r9, rdi
mov edx, 1
call sym.fwrite
sub r15, rax
add rbx, rax
test r15, r15
jg 0x14001fe78
mov ebx, dword [rsp + 0x3c]
jmp 0x14001f7f1
cmp edi, 0xfa1d05ee
je 0x14001fe50
cmp r13d, 1
je 0x14001ff0a
cmp dword [rsp + 0x28], 0xffffffff
mov byte [rax], 0x2d
mov edi, 1
jne 0x14001f80e
mov r15d, 0xffffffff
jmp 0x14001fd1a
mov ecx, 0x20
xor ebx, ebx
mov r15d, 0x20
call sym.vcalloc_noscan
mov r12, rax
jmp 0x14001f7cc
mov r15d, 0xffffffff
xor r14d, r14d
jmp 0x14001f87c
mov r14d, 1
mov r13d, 1
xor r12d, r12d
xor r11d, r11d
jmp 0x14001f758
xor edi, edi
cmp dword [rsp + 0x28], 0xffffffff
jne 0x14001f80e
jmp 0x14001fec0
mov rcx, qword [rsp + 0x28]
lea rdi, [rsp + 0x70]
mov r8, r9
mov rdx, r13
add ebx, r14d
add rcx, rdi
call sym.memcpy
jmp 0x14001fa34
mov qword [rsp + 0x28], r11
mov ecx, 1
mov edi, 0x1e
lea r12, str.double_string.free___detected_n
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov r14, qword [rsp + 0x28]
mov rbx, rax
nop dword [rax]
mov r8, rdi
mov rcx, r12
mov r9, rbx
mov edx, 1
call sym.fwrite
sub rdi, rax
add r12, rax
test rdi, rdi
jg 0x14001ff60
mov r11, r14
jmp 0x14001fc91
xor r14d, r14d
jmp 0x14001f89b
mov eax, dword [rsp + 0x70]
mov dword [r11], eax
mov eax, ebx
mov edx, dword [rdi + rax - 4]
mov dword [r11 + rax - 4], edx
jmp 0x14001fa88
mov eax, ebx
movzx edx, word [rdi + rax - 2]
mov word [r11 + rax - 2], dx
jmp 0x14001fa88
mov ecx, 1
lea rdi, str.double_string.free___detected_n
mov ebx, 0x1e
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov rbp, rax
mov r8, rbx
mov rcx, rdi
mov r9, rbp
mov edx, 1
call sym.fwrite
sub rbx, rax
add rdi, rax
test rbx, rbx
jg 0x14001ffd1
jmp 0x14001fb2b