Function at 0x14002b320
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
pxor xmm0, xmm0
comisd xmm1, xmm0
mov dword [rsp + 0xe8], r9d
mov rdi, rcx
mov esi, r8d
jae 0x14002b353
xorpd xmm1, xmmword [0x14003d950]
lea rax, [rsp + 0x30]
movsxd rdx, dword [rsp + 0xf0]
mov r8d, 0x12
mov rcx, rax
mov qword [rsp + 0x28], rax
lea rax, [0x14003d840]
addsd xmm1, qword [rax + rdx*8]
call sym.strconv__f64_to_str
mov r8, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov rbx, r8
mov r11, rcx
mov r10d, r8d
sar rbx, 0x20
mov r13d, ebx
cmp r8d, 2
jg 0x14002b7c0
mov qword [rsp + 0x68], 0
movzx r13d, byte [rcx]
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x6a], 0
mov qword [rsp + 0x72], 0
test r8d, r8d
jle 0x14002bc6c
mov edx, 1
xor eax, eax
mov r14d, 1
xor r9d, r9d
mov r15d, 1
jmp 0x14002b421
cmp r11b, 0x2b
je 0x14002b440
lea ebp, [r11 - 0x30]
cmp bpl, 9
ja 0x14002b450
movsxd rbp, r9d
add r9d, 1
mov byte [rsp + rbp + 0x60], r11b
mov r11d, edx
movzx r13d, byte [rcx + rax + 1]
add edx, 1
add rax, 1
cmp r10d, r11d
jle 0x14002b490
movzx r11d, byte [rcx + rax]
cmp r11b, 0x2d
jne 0x14002b3f0
mov r11d, edx
mov r15d, 0xffffffff
jmp 0x14002b40f
mov r11d, edx
mov r15d, 1
jmp 0x14002b40f
cmp r11b, 0x2e
jne 0x14002b470
lea r14d, [rax - 1]
test r15d, r15d
mov r11d, edx
cmovg r14d, eax
jmp 0x14002b40f
cmp r11b, 0x65
jne 0x14002b837
lea r11d, [rax + 1]
movsxd rax, r11d
movzx r13d, byte [rcx + rax]
nop word cs:[rax + rax]
movsxd r9, r9d
mov byte [rsp + r9 + 0x60], 0
cmp r13b, 0x2d
je 0x14002b820
xor eax, eax
cmp r13b, 0x2b
mov r12d, 1
sete al
add r11d, eax
cmp r8d, r11d
jle 0x14002bc3b
movsxd rax, r11d
sub r8d, r11d
xor ebp, ebp
add rax, rcx
add r8, rax
nop dword [rax]
movzx edx, byte [rax]
lea ecx, [rbp + rbp*4]
add rax, 1
lea ebp, [rdx + rcx*2 - 0x30]
cmp r8, rax
jne 0x14002b4d0
lea r8d, [rbp + 0x20]
xor ecx, ecx
test r8d, r8d
mov dword [rsp + 0x24], r8d
cmovns ecx, r8d
movsxd rcx, ecx
call sym.vcalloc_noscan
mov r8d, dword [rsp + 0x24]
test rax, rax
mov r13, rax
je 0x14002b51a
test r8d, r8d
jle 0x14002b51a
xor edx, edx
mov rcx, r13
call sym.memset
cmp ebx, 0xfa1d05ee
je 0x14002bbd4
xor eax, eax
cmp r15d, 1
je 0x14002b538
mov byte [r13], 0x2d
mov eax, 1
movzx edx, byte [rsp + 0x60]
cmp r12d, 0xffffffff
je 0x14002ba10
test dl, dl
je 0x14002bc5e
mov r10d, 1
mov r12d, 0xffffffff
lea rcx, [rsp + 0x5f]
jmp 0x14002b590
jne 0x14002b830
movsxd r8, edx
add eax, 2
mov r12d, edx
mov byte [r13 + r8], 0x2e
lea r8, [r10 + 1]
sub ebp, 1
movzx edx, byte [rcx + r8]
test dl, dl
je 0x14002b5b3
mov r10, r8
movsxd r8, eax
mov byte [r13 + r8], dl
lea edx, [rax + 1]
cmp r14d, r10d
jg 0x14002b5a4
test ebp, ebp
jns 0x14002b568
lea r8, [r10 + 1]
mov eax, edx
movzx edx, byte [rcx + r8]
test dl, dl
jne 0x14002b58d
lea r11d, [rax + rbp]
lea ecx, [r11 + 1]
test ebp, ebp
js 0x14002b5d4
nop
movsxd rdx, eax
add eax, 1
mov byte [r13 + rdx], 0x30
cmp eax, ecx
jne 0x14002b5c0
lea eax, [r11 + 1]
mov ecx, dword [rsp + 0xf0]
test ecx, ecx
jle 0x14002b960
test r12d, r12d
js 0x14002bb70
mov ecx, dword [rsp + 0xf0]
mov eax, dword [rsp + 0xf0]
add ecx, r12d
add eax, 1
lea r10d, [rcx + 1]
mov edx, ecx
movsxd rbx, r10d
mov byte [r13 + rbx], 0
cmp eax, 1
jle 0x14002b62e
nop dword [rax]
movsxd rax, edx
add rax, r13
cmp byte [rax], 0
jne 0x14002b626
mov byte [rax], 0x30
sub edx, 1
cmp r12d, edx
jne 0x14002b618
test r13, r13
je 0x14002bd15
mov dword [rsp + 0x24], r10d
add ecx, 2
movsxd rcx, ecx
call sym.malloc_noscan
mov r11, rax
mov rdx, r13
mov rcx, r11
mov r8, rbx
xor r13d, r13d
call sym.memcpy
mov byte [rax + rbx], 0
mov r11, rax
mov r10d, dword [rsp + 0x24]
movzx eax, byte [rax]
cmp al, 0x5b
je 0x14002b856
cmp byte [rsp + 0x110], 0
jne 0x14002b9a0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 0
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
cmp sil, 0x30
je 0x14002b9e0
cmp byte [rsp + 0xf8], 0
jne 0x14002b800
mov byte [rsp + 0x40], 0x2d
lea ebx, [r10 + 1]
xor ebp, ebp
lea rcx, [rsp + 0x41]
xor r14d, r14d
lea r15, [rsp + 0x40]
movsxd r8, r10d
mov rdx, r11
call sym.memcpy
mov r10d, dword [rsp + 0xe8]
mov edx, dword [rsp + 0x108]
movsxd r8, ebx
sub r10d, ebx
test edx, edx
jne 0x14002b900
test r10d, r10d
jle 0x14002bc83
lea ecx, [r14 + r10]
mov eax, r14d
movsxd rdx, eax
add eax, 1
mov byte [rsp + rdx + 0x60], sil
cmp eax, ecx
jne 0x14002b730
lea esi, [r10 + r14]
lea r12, [rsp + 0x60]
mov rdx, r15
movsxd rcx, esi
add ebx, esi
add rcx, r12
call sym.memcpy
movsxd rbx, ebx
mov rcx, r12
mov byte [rsp + rbx + 0x60], 0
call sym.strlen
mov rbx, rax
test rax, rax
je 0x14002b880
lea ecx, [rax + 1]
mov dword [rsp + 0x24], eax
movsxd rcx, ecx
call sym.malloc_noscan
cmp ebx, 8
mov r10d, dword [rsp + 0x24]
mov r11, rax
jae 0x14002ba90
test bl, 4
jne 0x14002bd20
test ebx, ebx
je 0x14002b7b2
movzx eax, byte [rsp + 0x60]
mov byte [r11], al
test bl, 2
jne 0x14002bd75
mov byte [r11 + rbx], 0
xor r12d, r12d
jmp 0x14002b890
movzx eax, byte [rcx]
cmp al, 0x6e
je 0x14002b672
cmp byte [rcx + 1], 0x69
je 0x14002b66a
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x6a], 0
mov qword [rsp + 0x72], 0
jmp 0x14002b3d4
cmp byte [rsp + 0x100], 0
je 0x14002bb10
mov byte [rsp + 0x40], 0x2b
jmp 0x14002b6e5
add r11d, 1
mov r12d, 0xffffffff
jmp 0x14002b4b5
mov eax, edx
jmp 0x14002b57d
cmp ebx, 0xfa1d05ee
je 0x14002bd38
mov r13d, 1
mov r10d, 0x1a
lea r11, str._Float_conversion_error___
mov r12d, r13d
mov rax, rdi
mov qword [rdi], r11
mov dword [rdi + 8], r10d
mov dword [rdi + 0xc], r12d
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r12d, 1
xor r10d, r10d
lea r11, [0x14003d126]
cmp r13d, 0xfa1d05ee
jne 0x14002b859
mov qword [rsp + 0x28], r11
mov ecx, 1
lea rsi, str.double_string.free___detected_n
mov ebx, 0x1e
mov dword [rsp + 0x24], r10d
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov r13d, dword [rsp + 0x24]
mov r14, qword [rsp + 0x28]
mov rbp, rax
nop word [rax + rax]
mov r8, rbx
mov rcx, rsi
mov r9, rbp
mov edx, 1
call sym.fwrite
sub rbx, rax
add rsi, rax
test rbx, rbx
jg 0x14002b8d0
mov r10d, r13d
mov r11, r14
jmp 0x14002b859
lea r12, [rsp + 0x60]
mov rdx, r15
mov dword [rsp + 0x24], r10d
add ebx, r14d
lea rcx, [r12 + rbp]
call sym.memcpy
cmp dword [rsp + 0x108], 1
jne 0x14002b758
mov r10d, dword [rsp + 0x24]
test r10d, r10d
jle 0x14002b758
add r10d, ebx
nop dword [rax + rax]
movsxd rax, ebx
add ebx, 1
mov byte [rsp + rax + 0x60], sil
cmp ebx, r10d
jne 0x14002b940
mov ebx, dword [rsp + 0xe8]
add ebx, r14d
jmp 0x14002b758
test r12d, r12d
js 0x14002bb40
test r13, r13
je 0x14002bd15
test r12d, r12d
jne 0x14002bc9c
xor r10d, r10d
mov r13d, 1
cmp byte [rsp + 0x110], 0
lea r11, [0x14003d126]
je 0x14002b680
nop dword [rax]
mov rcx, qword [rsp + 0x28]
mov r8d, r10d
mov rdx, r11
call sym.strconv__remove_tail_zeros.isra.0
mov rax, qword [rsp + 0x38]
mov r11, qword [rsp + 0x30]
mov r10d, eax
sar rax, 0x20
mov r14, rax
cmp r13d, 0xfa1d05ee
je 0x14002bca4
mov r13d, r14d
jmp 0x14002b680
cmp byte [rsp + 0xf8], 0
je 0x14002bae0
cmp byte [rsp + 0x100], 0
je 0x14002bb10
mov byte [rsp + 0x60], 0x2b
jmp 0x14002bae5
test ebp, ebp
jle 0x14002bb25
movsxd rcx, eax
lea r12d, [rax + 1]
lea r11d, [rbp - 1]
add eax, 2
mov byte [r13 + rcx], 0x30
movsxd rcx, r12d
mov byte [r13 + rcx], 0x2e
jmp 0x14002ba50
movsxd rcx, eax
sub r11d, 1
add eax, 1
mov byte [r13 + rcx], 0x30
test r11d, r11d
jne 0x14002ba40
test dl, dl
je 0x14002bd01
mov r8d, 1
lea rcx, [rsp + 0x5f]
nop dword [rax + rax]
movsxd r9, eax
mov r10, r8
add r8, 1
add eax, 1
mov byte [r13 + r9], dl
movzx edx, byte [rcx + r8]
test dl, dl
jne 0x14002ba70
jmp 0x14002b5d4
mov rax, qword [rsp + 0x60]
lea r8, [r11 + 8]
and r8, 0xfffffffffffffff8
mov qword [r11], rax
mov eax, ebx
mov rdx, qword [r12 + rax - 8]
mov qword [r11 + rax - 8], rdx
mov rax, r11
sub rax, r8
sub r12, rax
add eax, ebx
and eax, 0xfffffff8
cmp eax, 8
jb 0x14002b7b2
and eax, 0xfffffff8
xor edx, edx
mov ecx, edx
add edx, 8
mov r9, qword [r12 + rcx]
mov qword [r8 + rcx], r9
cmp edx, eax
jb 0x14002bac8
jmp 0x14002b7b2
mov byte [rsp + 0x60], 0x2d
lea r15, [rsp + 0x40]
sub dword [rsp + 0xe8], 1
mov ebx, r10d
mov ebp, 1
mov rcx, r15
mov r14d, 1
jmp 0x14002b6f8
lea r15, [rsp + 0x40]
mov ebx, r10d
xor ebp, ebp
xor r14d, r14d
mov rcx, r15
jmp 0x14002b6f8
test dl, dl
jne 0x14002ba5d
mov r8d, dword [rsp + 0xf0]
test r8d, r8d
jg 0x14002bb70
xor r10d, r10d
nop dword [rax]
add r10d, 1
test r13, r13
je 0x14002bd15
lea ecx, [r10 + 1]
mov dword [rsp + 0x24], r10d
movsxd rcx, ecx
call sym.malloc_noscan
movsxd rbx, dword [rsp + 0x24]
mov r11, rax
jmp 0x14002b64a
mov ebx, dword [rsp + 0xf0]
movsxd rdx, eax
lea r8d, [rax + 1]
mov byte [r13 + rdx], 0x2e
mov edx, r8d
lea r9d, [rbx + 1]
add eax, r9d
nop
movsxd rcx, edx
add edx, 1
mov byte [r13 + rcx], 0x30
cmp edx, eax
jne 0x14002bb90
mov r10d, dword [rsp + 0xf0]
add r10d, r8d
movsxd rbx, r10d
mov byte [r13 + rbx], 0
test r13, r13
je 0x14002bd15
test r10d, r10d
mov dword [rsp + 0x24], r10d
je 0x14002b97b
lea ecx, [r9 + r8]
jmp 0x14002b63f
mov ecx, 1
mov ebx, 0x1e
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
lea rcx, str.double_string.free___detected_n
mov qword [rsp + 0xd0], rdi
mov rdi, rbx
mov byte [rsp + 0xe0], sil
mov rbx, rax
mov rsi, rcx
nop dword [rax]
mov r8, rdi
mov rcx, rsi
mov r9, rbx
mov edx, 1
call sym.fwrite
sub rdi, rax
add rsi, rax
test rdi, rdi
jg 0x14002bc08
mov rdi, qword [rsp + 0xd0]
movzx esi, byte [rsp + 0xe0]
jmp 0x14002b526
mov ecx, 0x20
xor ebp, ebp
call sym.vcalloc_noscan
mov r8d, 0x20
mov r13, rax
test rax, rax
jne 0x14002b510
jmp 0x14002b51a
mov r12d, 0xffffffff
xor r10d, r10d
jmp 0x14002b5b3
mov r14d, 1
mov r15d, 1
xor r9d, r9d
xor r11d, r11d
jmp 0x14002b490
lea r12, [rsp + 0x60]
mov rdx, r15
add ebx, r14d
lea rcx, [r12 + rbp]
call sym.memcpy
jmp 0x14002b758
mov r10d, r12d
jmp 0x14002bb4d
mov qword [rsp + 0x28], r11
mov ecx, 1
lea r13, str.double_string.free___detected_n
mov r12d, 0x1e
mov dword [rsp + 0x24], r10d
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov ebp, dword [rsp + 0x24]
mov r15, qword [rsp + 0x28]
mov rbx, rax
nop word [rax + rax]
mov r8, r12
mov rcx, r13
mov r9, rbx
mov edx, 1
call sym.fwrite
sub r12, rax
add r13, rax
test r12, r12
jg 0x14002bcd8
mov r10d, ebp
mov r11, r15
jmp 0x14002b9d1
mov eax, dword [rsp + 0xf0]
test eax, eax
jg 0x14002b5ec
test r13, r13
jne 0x14002bc9c
call sym.tos.part.0
nop word [rax + rax]
mov eax, dword [rsp + 0x60]
mov dword [r11], eax
mov eax, ebx
mov edx, dword [r12 + rax - 4]
mov dword [r11 + rax - 4], edx
jmp 0x14002b7b2
mov ecx, 1
lea rsi, 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, rsi
mov r9, rbp
mov edx, 1
call sym.fwrite
sub rbx, rax
add rsi, rax
test rbx, rbx
jg 0x14002bd52
jmp 0x14002b843
mov eax, ebx
movzx edx, word [r12 + rax - 2]
mov word [r11 + rax - 2], dx
jmp 0x14002b7b2