Function at 0x140018050
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
pxor xmm0, xmm0
comisd xmm1, xmm0
mov dword [rsp + 0x148], r9d
mov rbx, rcx
mov ebp, r8d
jae 0x140018083
xorpd xmm1, xmmword [0x1400260b0]
lea rax, [rsp + 0x40]
movsxd rdx, dword [rsp + 0x150]
mov r8d, 0x12
mov rcx, rax
mov qword [rsp + 0x30], rax
lea rax, [0x140025f00]
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 r14d, r8d
sar rdi, 0x20
mov r12d, edi
cmp r8d, 2
jg 0x140018540
mov qword [rsp + 0x78], 0
movzx r11d, byte [rcx]
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x7a], 0
mov qword [rsp + 0x82], 0
test r8d, r8d
jle 0x1400189fe
mov eax, 1
xor edx, edx
mov r13d, 1
xor esi, esi
mov r15d, 1
jmp 0x140018152
cmp r9b, 0x2b
je 0x140018170
lea r10d, [r9 - 0x30]
cmp r10b, 9
ja 0x140018180
movsxd r10, esi
add esi, 1
mov byte [rsp + r10 + 0x70], r9b
mov r9d, eax
movsxd r10, eax
add rdx, 1
add eax, 1
movzx r11d, byte [rcx + r10]
cmp r14d, r9d
jle 0x1400181c0
movzx r9d, byte [rcx + rdx]
cmp r9b, 0x2d
jne 0x140018120
mov r9d, eax
mov r15d, 0xffffffff
jmp 0x14001813e
mov r9d, eax
mov r15d, 1
jmp 0x14001813e
cmp r9b, 0x2e
jne 0x1400181a0
lea r13d, [rdx - 1]
cmp r15d, 1
mov r9d, eax
cmove r13d, edx
jmp 0x14001813e
cmp r9b, 0x65
jne 0x1400185bf
lea r9d, [rdx + 1]
movsxd rax, r9d
movzx r11d, byte [rcx + rax]
nop word cs:[rax + rax]
movsxd rsi, esi
mov byte [rsp + rsi + 0x70], 0
cmp r11b, 0x2d
je 0x1400185a0
xor eax, eax
mov dword [rsp + 0x28], 1
cmp r11b, 0x2b
sete al
add r9d, eax
cmp r8d, r9d
jle 0x14001899b
movsxd rax, r9d
sub r8d, r9d
xor esi, esi
add rax, rcx
add r8, rax
nop dword [rax]
movzx edx, byte [rax]
lea ecx, [rsi + rsi*4]
add rax, 1
lea esi, [rdx + rcx*2 - 0x30]
cmp r8, rax
jne 0x140018200
lea r9d, [rsi + 0x20]
xor r12d, r12d
test r9d, r9d
mov dword [rsp + 0x3c], r9d
cmovns r12d, r9d
movsxd r12, r12d
mov rcx, r12
call sym.GC_malloc_atomic
mov r8, r12
xor edx, edx
mov rcx, rax
call sym.memset
mov r9d, dword [rsp + 0x3c]
mov r12, rax
test r9d, r9d
jle 0x1400189c0
xor edx, edx
mov r8d, r9d
mov rcx, r12
call sym.memset
cmp edi, 0xfa1d05ee
je 0x140018946
xor edi, edi
cmp r15d, 1
je 0x14001827a
mov byte [r12], 0x2d
mov edi, 1
cmp dword [rsp + 0x28], 0xffffffff
je 0x140018760
movzx eax, byte [rsp + 0x70]
test al, al
je 0x1400189f0
mov edx, 1
mov r14d, 0xffffffff
lea r8, [rsp + 0x6f]
jmp 0x1400182cf
jne 0x1400185b8
movsxd rcx, eax
add edi, 2
mov r14d, eax
mov byte [r12 + rcx], 0x2e
lea rcx, [rdx + 1]
sub esi, 1
movzx eax, byte [r8 + rcx]
test al, al
je 0x1400182f1
mov rdx, rcx
movsxd rcx, edi
mov byte [r12 + rcx], al
lea eax, [rdi + 1]
cmp r13d, edx
jg 0x1400182e2
test esi, esi
jns 0x1400182a8
lea rcx, [rdx + 1]
mov edi, eax
movzx eax, byte [r8 + rcx]
test al, al
jne 0x1400182cc
mov r13d, edx
test esi, esi
js 0x140018313
movsxd rax, esi
movsxd rcx, edi
lea edi, [rsi + rdi + 1]
mov edx, 0x30
add rcx, r12
lea r8, [rax + 1]
call sym.memset
mov edx, dword [rsp + 0x150]
test edx, edx
jle 0x140018658
cmp r14d, 0xffffffff
je 0x140018898
mov esi, dword [rsp + 0x150]
mov edx, dword [rsp + 0x150]
add esi, r14d
lea ecx, [rdx - 1]
mov rdx, r12
lea r14d, [rsi + 1]
sub rdx, rcx
movsxd rcx, esi
movsxd rdi, r14d
add rdx, rcx
lea rax, [r12 + rdi]
mov byte [rax], 0
nop word [rax + rax]
cmp byte [rax - 1], 0
jne 0x14001836a
mov byte [rax - 1], 0x30
sub rax, 1
cmp rdx, rax
jne 0x140018360
add esi, 2
movsxd rsi, esi
mov rcx, rsi
call sym.GC_malloc_atomic
test rax, rax
je 0x140018aea
mov rdx, r12
mov r8, rdi
mov rcx, rax
xor r12d, r12d
call sym.memcpy
mov byte [rax + rdi], 0
mov r11, rax
movzx eax, byte [rax]
cmp al, 0x5b
je 0x1400185de
cmp byte [rsp + 0x170], 0
jne 0x140018690
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 0x1400186d0
cmp byte [rsp + 0x158], 0
jne 0x140018588
mov byte [rsp + 0x50], 0x2d
lea esi, [r14 + 1]
lea rcx, [rsp + 0x51]
xor edi, edi
xor r13d, r13d
mov qword [rsp + 0x28], 0
lea r15, [rsp + 0x50]
movsxd r8, r14d
mov rdx, r11
call sym.memcpy
mov r9d, dword [rsp + 0x148]
mov eax, dword [rsp + 0x168]
sub r9d, esi
lea r14d, [r9 + rdi]
movsxd r9, esi
test eax, eax
jne 0x1400185f0
test r14d, r14d
jle 0x140018a23
lea rdi, [rsp + 0x70]
movsxd rcx, r13d
movzx edx, bpl
mov r8d, r14d
add rcx, rdi
add r13d, r14d
mov qword [rsp + 0x28], r9
call sym.memset
mov r8, qword [rsp + 0x28]
movsxd rcx, r13d
mov rdx, r15
add rcx, rdi
add esi, r13d
call sym.memcpy
movsxd rsi, esi
mov rcx, rdi
mov byte [rsp + rsi + 0x70], 0
call sym.strlen
mov rbp, rax
test rax, rax
je 0x140018640
lea esi, [rax + 1]
mov r14d, eax
movsxd rsi, esi
mov rcx, rsi
call sym.GC_malloc_atomic
mov r11, rax
test rax, rax
je 0x140018aea
cmp ebp, 8
jae 0x140018710
test bpl, 4
jne 0x140018a96
test ebp, ebp
jne 0x14001886f
mov byte [r11 + rbp], 0
xor r13d, r13d
cmp r12d, 0xfa1d05ee
je 0x1400188fc
mov rax, rbx
mov qword [rbx], r11
mov dword [rbx + 8], r14d
mov dword [rbx + 0xc], r13d
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, byte [rcx]
cmp al, 0x6e
je 0x1400183ad
cmp byte [rcx + 1], 0x69
je 0x1400183a5
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x7a], 0
mov qword [rsp + 0x82], 0
jmp 0x140018107
cmp byte [rsp + 0x160], 0
je 0x1400186f1
mov byte [rsp + 0x50], 0x2b
jmp 0x140018426
mov dword [rsp + 0x28], 0xffffffff
add r9d, 1
jmp 0x1400181e6
mov edi, eax
jmp 0x1400182bc
cmp edi, 0xfa1d05ee
je 0x140018aad
mov r12d, 1
lea r11, str._Float_conversion_error___
mov r14d, 0x1a
mov r13d, r12d
jmp 0x140018515
mov rcx, qword [rsp + 0x28]
lea rdi, [rsp + 0x70]
mov r8, r9
mov rdx, r15
add esi, r13d
add rcx, rdi
call sym.memcpy
cmp dword [rsp + 0x168], 1
jne 0x1400184ac
test r14d, r14d
jle 0x1400184ac
movsxd rcx, esi
movzx edx, bpl
mov r8d, r14d
add esi, r14d
add rcx, rdi
call sym.memset
jmp 0x1400184ac
mov r13d, 1
xor r14d, r14d
lea r11, [0x14002590a]
jmp 0x140018508
cmp r14d, 0xffffffff
je 0x140018828
test r14d, r14d
jne 0x14001882c
cmp byte [rsp + 0x170], 0
mov r12d, 1
lea r11, [0x14002590a]
je 0x1400183bb
nop word cs:[rax + rax]
mov rcx, qword [rsp + 0x30]
mov r8d, r14d
mov rdx, r11
call sym.strconv__remove_tail_zeros.isra.0
mov r13, qword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
mov r14d, r13d
sar r13, 0x20
cmp r12d, 0xfa1d05ee
je 0x140018a43
mov r12d, r13d
jmp 0x1400183bb
cmp byte [rsp + 0x158], 0
je 0x1400187e0
cmp byte [rsp + 0x160], 0
mov eax, 0x2b
jne 0x1400187e5
lea r15, [rsp + 0x50]
mov esi, r14d
xor edi, edi
xor r13d, r13d
mov qword [rsp + 0x28], 0
mov rcx, r15
jmp 0x140018442
mov rax, qword [rsp + 0x70]
lea r8, [r11 + 8]
and r8, 0xfffffffffffffff8
mov qword [r11], rax
mov eax, ebp
mov rdx, qword [rdi + rax - 8]
mov qword [r11 + rax - 8], rdx
mov rax, r11
sub rax, r8
sub rdi, rax
add eax, ebp
and eax, 0xfffffff8
cmp eax, 8
jb 0x140018500
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 0x140018748
jmp 0x140018500
test esi, esi
jle 0x1400189e5
movsxd rax, edi
lea r14d, [rdi + 1]
sub esi, 1
add edi, 2
mov byte [r12 + rax], 0x30
movsxd rax, r14d
mov byte [r12 + rax], 0x2e
jmp 0x140018796
movsxd rax, edi
sub esi, 1
add edi, 1
mov byte [r12 + rax], 0x30
test esi, esi
jne 0x140018788
movzx edx, byte [rsp + 0x70]
test dl, dl
je 0x14001880d
lea eax, [rdi + 1]
movsxd rcx, edi
lea rdi, [rsp + 0x70]
xor r13d, r13d
cdqe
sub rdi, rcx
nop word cs:[rax + rax]
mov byte [r12 + rax - 1], dl
mov rcx, rax
add rax, 1
add r13d, 1
movzx edx, byte [rdi + rax - 1]
test dl, dl
jne 0x1400187c0
mov edi, ecx
jmp 0x140018313
mov eax, 0x2d
lea r15, [rsp + 0x50]
mov byte [rsp + 0x70], al
mov esi, r14d
mov edi, 0xffffffff
mov qword [rsp + 0x28], 1
mov rcx, r15
mov r13d, 1
jmp 0x140018442
mov ecx, dword [rsp + 0x150]
test ecx, ecx
jg 0x140018322
cmp r14d, 0xffffffff
jne 0x14001882c
xor r13d, r13d
nop dword [rax]
lea r14d, [r13 + 1]
lea esi, [r14 + 1]
movsxd rsi, esi
mov rcx, rsi
call sym.GC_malloc_atomic
test rax, rax
je 0x140018aea
movsxd rsi, r14d
mov rdx, r12
mov rcx, rax
xor r12d, r12d
mov r8, rsi
call sym.memcpy
mov byte [rax + rsi], 0
mov r11, rax
movzx eax, byte [rax]
cmp al, 0x5b
jne 0x1400183ad
jmp 0x1400185de
movzx eax, byte [rsp + 0x70]
mov byte [r11], al
test bpl, 2
je 0x140018500
mov eax, ebp
movzx edx, word [rdi + rax - 2]
mov word [r11 + rax - 2], dx
jmp 0x140018500
movsxd rax, edi
add edi, 1
mov r8d, dword [rsp + 0x150]
mov edx, 0x30
mov byte [r12 + rax], 0x2e
movsxd rcx, edi
add rcx, r12
call sym.memset
add edi, dword [rsp + 0x150]
mov rcx, qword [rsp + 0x30]
mov rdx, r12
movsxd rax, edi
mov byte [r12 + rax], 0
mov r8, rax
call sym.string_clone.isra.0
mov r11, qword [rsp + 0x40]
mov r12, qword [rsp + 0x48]
movzx eax, byte [r11]
mov r14d, r12d
shr r12, 0x20
cmp al, 0x5b
jne 0x1400183ad
jmp 0x1400185de
mov qword [rsp + 0x28], r11
mov ecx, 1
mov esi, 0x1e
lea rdi, str.double_string.free___detected_n
call qword [dbg.__acrt_iob_func]
mov r12, qword [rsp + 0x28]
mov rbp, rax
mov r8, rsi
mov rcx, rdi
mov r9, rbp
mov edx, 1
call sym.fwrite
sub rsi, rax
add rdi, rax
test rsi, rsi
jg 0x140018920
mov r11, r12
jmp 0x140018515
lea r14, str.double_string.free___detected_n
mov edi, 0x1e
mov ecx, 1
call qword [dbg.__acrt_iob_func]
mov qword [rsp + 0x130], rbx
mov rbx, r14
mov r14, rdi
mov rdi, rax
nop
mov r8, r14
mov rcx, rbx
mov r9, rdi
mov edx, 1
call sym.fwrite
sub r14, rax
add rbx, rax
test r14, r14
jg 0x140018970
mov rbx, qword [rsp + 0x130]
jmp 0x140018268
mov ecx, 0x20
xor esi, esi
call sym.GC_malloc_atomic
pxor xmm0, xmm0
mov r9d, 0x20
mov r12, rax
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
jmp 0x14001824f
cmp edi, 0xfa1d05ee
je 0x140018946
cmp r15d, 1
je 0x140018a14
cmp dword [rsp + 0x28], 0xffffffff
mov byte [rax], 0x2d
mov edi, 1
jne 0x140018285
mov r14d, 0xffffffff
jmp 0x14001879a
mov r14d, 0xffffffff
xor r13d, r13d
jmp 0x1400182f4
mov r13d, 1
mov r15d, 1
xor esi, esi
xor r9d, r9d
jmp 0x1400181c0
xor edi, edi
cmp dword [rsp + 0x28], 0xffffffff
jne 0x140018285
jmp 0x1400189e5
mov rcx, qword [rsp + 0x28]
lea rdi, [rsp + 0x70]
mov r8, r9
mov rdx, r15
add esi, r13d
add rcx, rdi
call sym.memcpy
jmp 0x1400184ac
mov qword [rsp + 0x28], r11
mov ecx, 1
mov edi, 0x1e
lea r12, str.double_string.free___detected_n
call qword [dbg.__acrt_iob_func]
mov r15, qword [rsp + 0x28]
mov rsi, rax
nop word [rax + rax]
mov r8, rdi
mov rcx, r12
mov r9, rsi
mov edx, 1
call sym.fwrite
sub rdi, rax
add r12, rax
test rdi, rdi
jg 0x140018a70
mov r11, r15
jmp 0x1400186be
mov eax, dword [rsp + 0x70]
mov dword [r11], eax
mov eax, ebp
mov edx, dword [rdi + rax - 4]
mov dword [r11 + rax - 4], edx
jmp 0x140018500
mov ecx, 1
lea rdi, str.double_string.free___detected_n
mov esi, 0x1e
call qword [dbg.__acrt_iob_func]
mov rbp, rax
mov r8, rsi
mov rcx, rdi
mov r9, rbp
mov edx, 1
call sym.fwrite
sub rsi, rax
add rdi, rax
test rsi, rsi
jg 0x140018ac7
jmp 0x1400185cb
xor eax, eax
lea rdi, [rsp + 0xa4]
mov ecx, 0xf
rep stosd dword [rdi], eax
lea rax, str.malloc_noscan_
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x90]
mov qword [rsp + 0x90], rax
mov rax, qword [0x140026080]
mov dword [rsp + 0xa0], 0xfe09
mov qword [rsp + 0x98], rax
lea rax, str.__failed
mov qword [rsp + 0xb8], rax
mov rax, qword [0x140026030]
mov qword [rsp + 0xa8], rsi
mov qword [rsp + 0xc0], rax
call sym.str_intp.constprop.0
mov edx, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
call sym._v_panic.isra.0
nop
nop dword [rax + rax]