Function at 0x140017380
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
pxor xmm0, xmm0
mov esi, dword [rsp + 0x160]
comisd xmm1, xmm0
mov rdi, rcx
mov ebp, r8d
mov ebx, r9d
ja 0x1400173b5
xorpd xmm1, xmmword [0x1400260b0]
movabs r9, 0xfffffffffffff
movq r8, xmm1
mov r13, r8
and r9, r8
shr r8, 0x34
and r8d, 0x7ff
shr r13, 0x3f
cmp r8, 0x7ff
je 0x1400177f8
mov rax, r9
or rax, r8
je 0x140017480
lea rax, [r8 - 0x3ff]
cmp rax, 0x34
ja 0x140017838
mov r10, r9
mov ecx, 0x34
bts r10, 0x34
sub rcx, rax
mov rdx, r10
shr rdx, cl
mov rax, rdx
shl rax, cl
cmp r10, rax
jne 0x140017838
movabs r10, 0xcccccccccccccccd
mov rax, rdx
movabs r11, 0x1999999999999999
imul rax, r10
ror rax, 1
cmp r11, rax
jb 0x140017980
mov r9d, 1
nop dword [rax]
mov rax, rdx
mov r8d, r9d
add r9d, 1
mul r10
shr rdx, 3
mov rcx, rdx
imul rcx, r10
ror rcx, 1
cmp r11, rcx
jae 0x140017458
jmp 0x14001784f
cmp r13b, 1
lea r11, str.0e00
lea rax, str._0e00
mov r12d, 1
sbb r10d, r10d
add r10d, 6
test r13b, r13b
cmovne r11, rax
cmp byte [rsp + 0x180], 0
jne 0x140017760
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
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0
cmp bpl, 0x30
je 0x1400176e8
cmp byte [rsp + 0x168], 0
je 0x140017730
cmp byte [rsp + 0x170], 0
jne 0x1400178a0
lea r14, [rsp + 0x60]
mov esi, r10d
xor r15d, r15d
xor r13d, r13d
mov qword [rsp + 0x30], 0
mov rcx, r14
movsxd r8, r10d
mov rdx, r11
sub ebx, esi
call sym.memcpy
mov eax, dword [rsp + 0x178]
add ebx, r15d
movsxd r9, esi
test eax, eax
jne 0x140017638
test ebx, ebx
jle 0x1400178d8
movsxd rcx, r13d
mov r8d, ebx
movzx edx, bpl
add ebx, r13d
lea r15, [rsp + 0x80]
mov qword [rsp + 0x30], r9
add esi, ebx
add rcx, r15
call sym.memset
mov r8, qword [rsp + 0x30]
movsxd rcx, ebx
mov rdx, r14
add rcx, r15
call sym.memcpy
movsxd rsi, esi
mov rcx, r15
mov byte [rsp + rsi + 0x80], 0
call sym.strlen
mov rbx, rax
test rax, rax
je 0x140017688
lea r13d, [rax + 1]
mov ebp, eax
movsxd r13, r13d
mov rcx, r13
call sym.GC_malloc_atomic
mov rsi, rax
test rax, rax
je 0x140017988
cmp ebx, 8
jae 0x1400177a0
test bl, 4
jne 0x140017967
test ebx, ebx
jne 0x1400178b0
mov byte [rsi + rbx], 0
xor r13d, r13d
cmp r12d, 0xfa1d05ee
je 0x1400176a4
mov rax, rdi
mov qword [rdi], rsi
mov dword [rdi + 8], ebp
mov dword [rdi + 0xc], r13d
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x30]
mov r8, r9
mov rdx, r14
add esi, r13d
lea r15, [rsp + 0x80]
add rcx, r15
call sym.memcpy
cmp dword [rsp + 0x178], 1
jne 0x1400175a9
test ebx, ebx
jle 0x1400175a9
movsxd rcx, esi
movzx edx, bpl
mov r8d, ebx
add esi, ebx
add rcx, r15
call sym.memset
jmp 0x1400175a9
mov r13d, 1
xor ebp, ebp
lea rsi, [0x14002590a]
cmp r12d, 0xfa1d05ee
jne 0x140017613
mov ecx, 1
lea r14, str.double_string.free___detected_n
mov ebx, 0x1e
call qword [dbg.__acrt_iob_func]
mov r12, rax
nop
mov r8, rbx
mov rcx, r14
mov r9, r12
mov edx, 1
call sym.fwrite
sub rbx, rax
add r14, rax
test rbx, rbx
jg 0x1400176c0
jmp 0x140017613
cmp byte [rsp + 0x168], 0
jne 0x140017880
mov eax, 0x2d
lea r14, [rsp + 0x60]
mov byte [rsp + 0x80], al
mov esi, r10d
mov r15d, 0xffffffff
mov qword [rsp + 0x30], 1
mov rcx, r14
mov r13d, 1
jmp 0x140017548
mov byte [rsp + 0x60], 0x2d
lea esi, [r10 + 1]
lea rcx, [rsp + 0x61]
xor r15d, r15d
xor r13d, r13d
mov qword [rsp + 0x30], 0
lea r14, [rsp + 0x60]
jmp 0x140017548
mov r8d, r10d
mov rdx, r11
lea rcx, [rsp + 0x40]
call sym.strconv__remove_tail_zeros.isra.0
mov rax, qword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
mov r10d, eax
sar rax, 0x20
mov rsi, rax
cmp r12d, 0xfa1d05ee
je 0x1400178fb
mov r12d, esi
jmp 0x1400174b4
mov rax, qword [rsp + 0x80]
lea r8, [rsi + 8]
and r8, 0xfffffffffffffff8
mov qword [rsi], rax
mov eax, ebx
mov rdx, qword [r15 + rax - 8]
mov qword [rsi + rax - 8], rdx
mov rax, rsi
sub rax, r8
sub r15, rax
add eax, ebx
and eax, 0xfffffff8
cmp eax, 8
jb 0x1400175ff
and eax, 0xfffffff8
xor edx, edx
mov ecx, edx
add edx, 8
mov r9, qword [r15 + rcx]
mov qword [r8 + rcx], r9
cmp edx, eax
jb 0x1400177db
jmp 0x1400175ff
mov r12d, 1
mov r10d, 3
lea r11, [0x140025c11]
test r9, r9
jne 0x1400174a6
test r13b, r13b
lea r11, str.inf
lea rax, str._inf
mov r10d, 4
cmovne r11, rax
jmp 0x1400174a6
mov rdx, r9
lea rcx, [rsp + 0x50]
call sym.strconv__f64_to_decimal.lto_priv.0
mov rdx, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x58]
mov dword [rsp + 0x28], esi
lea rcx, [rsp + 0x40]
mov r9d, r13d
mov dword [rsp + 0x20], esi
call sym.strconv__Dec64_get_string_64.isra.0
mov rax, qword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
mov r10d, eax
shr rax, 0x20
mov r12, rax
jmp 0x1400174a6
cmp byte [rsp + 0x170], 0
mov eax, 0x2b
jne 0x1400176fb
jmp 0x14001752e
mov byte [rsp + 0x60], 0x2b
jmp 0x140017735
movzx eax, byte [rsp + 0x80]
mov byte [rsi], al
test bl, 2
je 0x1400175ff
mov eax, ebx
movzx edx, word [r15 + rax - 2]
mov word [rsi + rax - 2], dx
jmp 0x1400175ff
mov rcx, qword [rsp + 0x30]
mov r8, r9
mov rdx, r14
add esi, r13d
lea r15, [rsp + 0x80]
add rcx, r15
call sym.memcpy
jmp 0x1400175a9
mov qword [rsp + 0x38], r11
mov ecx, 1
lea r14, str.double_string.free___detected_n
mov r13d, 0x1e
mov dword [rsp + 0x30], r10d
call qword [dbg.__acrt_iob_func]
mov r11, qword [rsp + 0x38]
mov r10d, dword [rsp + 0x30]
mov r12, rax
nop word [rax + rax]
mov r8, r13
mov rcx, r14
mov r9, r12
mov edx, 1
mov qword [rsp + 0x38], r11
mov dword [rsp + 0x30], r10d
call sym.fwrite
mov r10d, dword [rsp + 0x30]
mov r11, qword [rsp + 0x38]
sub r13, rax
add r14, rax
test r13, r13
jg 0x140017930
jmp 0x140017791
mov eax, dword [rsp + 0x80]
mov dword [rsi], eax
mov eax, ebx
mov edx, dword [r15 + rax - 4]
mov dword [rsi + rax - 4], edx
jmp 0x1400175ff
xor r8d, r8d
jmp 0x14001784f
xor eax, eax
lea rdi, [rsp + 0xb4]
mov ecx, 0xf
mov dword [rsp + 0xb0], 0xfe09
rep stosd dword [rdi], eax
lea rax, str.malloc_noscan_
lea rcx, [rsp + 0x40]
mov qword [rsp + 0xb8], r13
mov qword [rsp + 0xa0], rax
mov rax, qword [0x140026080]
lea rdx, [rsp + 0xa0]
mov qword [rsp + 0xa8], rax
lea rax, str.__failed
mov qword [rsp + 0xc8], rax
mov rax, qword [0x140026030]
mov qword [rsp + 0xd0], 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]