Function at 0x407ed0
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
movzx eax, byte [r8 + 0xc]
comisd xmm1, xmmword [0x0041f358]
movzx r13d, byte [r8]
mov byte [rsp + 0x3e], al
movzx eax, byte [r8 + 0xd]
mov r12, r8
mov qword [rsp + 0x100], rcx
mov byte [rsp + 0x3f], al
mov eax, dword [r8 + 0x10]
mov dword [rsp + 0x38], eax
mov eax, dword [r8 + 8]
mov dword [rsp + 0x28], eax
jae 0x407f26
xorpd xmm1, xmmword [0x0041f360]
movsxd rax, dword [rsp + 0x28]
lea rdx, [0x0041f2a0]
mov r8d, 0x12
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x40], rcx
addsd xmm1, qword [rdx + rax*8]
call sym.strconv__f64_to_str
mov r9, qword [rsp + 0x68]
mov r8, qword [rsp + 0x60]
mov rax, r9
mov edi, r9d
sar rax, 0x20
cmp r9d, 2
mov r15, r8
mov qword [rsp + 0x30], rax
mov ebp, eax
jle 0x408480
movzx eax, byte [r8]
cmp al, 0x6e
je 0x40822d
cmp byte [r8 + 1], 0x69
je 0x408225
mov qword [rsp + 0x90], 0
xor eax, eax
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xa0], 0
mov word [rsp + 0xa8], ax
mov edx, 1
xor ecx, ecx
mov r14d, 1
mov ebp, 1
xor r10d, r10d
mov ebx, 0xffffffff
jmp 0x408011
cmp al, 0x2b
je 0x4083f0
lea esi, [rax - 0x30]
cmp sil, 9
ja 0x408400
movsxd r11, r10d
add r10d, 1
mov byte [rsp + r11 + 0x90], al
mov eax, edx
add rcx, 1
add edx, 1
cmp edi, eax
jle 0x40802c
movzx eax, byte [r8 + rcx]
mov r11d, ecx
cmp al, 0x2d
jne 0x407fe0
mov eax, edx
add rcx, 1
add edx, 1
cmp edi, eax
mov ebp, ebx
jg 0x408011
movsxd rdx, eax
movzx edx, byte [r8 + rdx]
movsxd r10, r10d
cmp dl, 0x2d
mov byte [rsp + r10 + 0x90], 0
je 0x4086a0
cmp dl, 0x2b
mov edi, 1
sete dl
movzx edx, dl
add eax, edx
cmp r9d, eax
jle 0x4088c0
movsxd rcx, eax
sub r9d, 1
xor ebx, ebx
lea rdx, [r8 + rcx]
sub r9d, eax
lea rcx, [rcx + r8 + 1]
add r9, rcx
nop word [rax + rax]
movzx eax, byte [rdx]
lea ecx, [rbx + rbx*4]
add rdx, 1
cmp r9, rdx
lea ebx, [rax + rcx*2 - 0x30]
jne 0x408080
mov r15d, ebx
mov ecx, 0
add r15d, 0x20
cmovns ecx, r15d
movsxd rcx, ecx
call sym.vcalloc_noscan
test rax, rax
mov rsi, rax
je 0x4080d7
test r15d, r15d
jle 0x4080d7
lea eax, [r15 - 1]
mov r8d, 1
mov rcx, rsi
add rax, 1
test r15d, r15d
cmovg r8, rax
xor edx, edx
call sym.memset
cmp dword [rsp + 0x30], 0xfa1d05ee
je 0x408860
xor eax, eax
cmp ebp, 1
je 0x4080f4
mov byte [rsi], 0x2d
mov eax, 1
cmp edi, 0xffffffff
je 0x4085b0
movzx ecx, byte [rsp + 0x90]
test cl, cl
je 0x408930
mov edx, 1
mov edi, 0xffffffff
lea r9, [rsp + 0x8f]
jmp 0x408153
jne 0x408470
movsxd r10, ecx
add eax, 2
mov edi, ecx
mov byte [rsi + r10], 0x2e
add rdx, 1
sub ebx, 1
movzx ecx, byte [r9 + rdx]
test cl, cl
je 0x408178
movsxd r8, eax
cmp r14d, edx
mov byte [rsi + r8], cl
lea ecx, [rax + 1]
mov r8d, edx
jg 0x408169
test ebx, ebx
jns 0x408130
add rdx, 1
mov eax, ecx
movzx ecx, byte [r9 + rdx]
test cl, cl
jne 0x408153
test ebx, ebx
js 0x4081a1
add ebx, eax
lea edx, [rbx + 1]
nop dword [rax + rax]
nop word cs:[rax + rax]
movsxd rcx, eax
add eax, 1
cmp eax, edx
mov byte [rsi + rcx], 0x30
jne 0x408190
lea eax, [rbx + 1]
mov ecx, dword [rsp + 0x28]
test ecx, ecx
jle 0x408570
test edi, edi
js 0x408780
mov eax, dword [rsp + 0x28]
add eax, 1
add edi, eax
cmp eax, 1
movsxd rbx, edi
mov byte [rsi + rbx], 0
jle 0x4081f5
mov ecx, dword [rsp + 0x28]
lea edx, [rdi - 1]
not ecx
add ecx, edi
nop
nop word cs:[rax + rax]
movsxd rax, edx
add rax, rsi
cmp byte [rax], 0
jne 0x4081ee
mov byte [rax], 0x30
sub edx, 1
cmp ecx, edx
jne 0x4081e0
test rsi, rsi
je 0x408973
lea ecx, [rdi + 1]
xor ebp, ebp
movsxd rcx, ecx
call sym.malloc_noscan
mov r8, rbx
mov rdx, rsi
mov r15, rax
mov rcx, rax
call sym.memcpy
mov byte [r15 + rbx], 0
movzx eax, byte [r15]
cmp al, 0x5b
je 0x40843f
cmp byte [r12 + 0x18], 0
jne 0x408650
mov qword [rsp + 0x90], 0
cmp r13b, 0x30
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
je 0x408630
cmp byte [rsp + 0x3e], 0
jne 0x4083d0
mov byte [rsp + 0x90], 0x2d
lea r10, [rsp + 0x90]
xor r9d, r9d
xor esi, esi
lea r14d, [rdi + 1]
xor ebx, ebx
lea rcx, [r10 + 1]
movsxd r8, edi
mov rdx, r15
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], r9
call sym.memcpy
add esi, dword [r12 + 4]
movsxd r8, r14d
mov edx, dword [rsp + 0x38]
mov r9, qword [rsp + 0x28]
mov r10, qword [rsp + 0x30]
sub esi, r14d
test edx, edx
jne 0x408520
test esi, esi
jle 0x408324
lea ecx, [rbx + rsi]
mov eax, ebx
nop word cs:[rax + rax]
movsxd rdx, eax
add eax, 1
cmp eax, ecx
mov byte [rsp + rdx + 0x70], r13b
jne 0x408310
add ebx, esi
movsxd r9, ebx
lea rdi, [rsp + 0x70]
mov rdx, r10
add ebx, r14d
lea rcx, [rdi + r9]
call sym.memcpy
movsxd rbx, ebx
mov byte [rsp + rbx + 0x70], 0
mov rbx, rdi
mov edx, dword [rbx]
add rbx, 4
lea eax, [rdx - 0x1010101]
not edx
and eax, edx
and eax, 0x80808080
je 0x408343
mov edx, eax
shr edx, 0x10
test eax, 0x8080
cmove eax, edx
lea rdx, [rbx + 2]
mov esi, eax
cmove rbx, rdx
add sil, al
sbb rbx, 3
sub rbx, rdi
je 0x4084e0
lea ecx, [rbx + 1]
mov r12d, ebx
movsxd rcx, ecx
call sym.malloc_noscan
cmp ebx, 8
mov rsi, rax
jae 0x4086b0
test bl, 4
jne 0x408945
test ebx, ebx
je 0x4083b6
movzx eax, byte [rdi]
test bl, 2
mov byte [rsi], al
jne 0x408958
mov byte [rsi + rbx], 0
xor r13d, r13d
jmp 0x4084f0
cmp byte [rsp + 0x3f], 0
je 0x408720
mov byte [rsp + 0x90], 0x2b
jmp 0x4082b0
mov eax, edx
mov ebp, 1
jmp 0x408006
cmp al, 0x2e
jne 0x4087f0
xor esi, esi
cmp ebp, 1
mov eax, edx
setne sil
sub r11d, esi
mov r14d, r11d
jmp 0x408006
cmp dword [rsp + 0x30], 0xfa1d05ee
je 0x408969
mov ebp, 1
mov edi, 0x1a
lea r15, str._Float_conversion_error___
mov rax, qword [rsp + 0x100]
mov qword [rax], r15
mov dword [rax + 8], edi
mov dword [rax + 0xc], ebp
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, ecx
jmp 0x408143
mov qword [rsp + 0x90], 0
xor r10d, r10d
test r9d, r9d
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xa0], 0
mov word [rsp + 0xa8], r10w
jg 0x407fb9
movzx edx, byte [r8]
mov r14d, 1
xor r10d, r10d
xor eax, eax
mov ebp, 1
jmp 0x408034
lea rsi, [0x0041e097]
mov r13d, 1
xor r12d, r12d
cmp ebp, 0xfa1d05ee
je 0x408810
mov rax, qword [rsp + 0x100]
mov qword [rax], rsi
mov dword [rax + 8], r12d
mov dword [rax + 0xc], r13d
jmp 0x408450
lea rdi, [rsp + 0x70]
mov rdx, r10
add ebx, r14d
lea rcx, [rdi + r9]
call sym.memcpy
cmp dword [rsp + 0x38], 1
jne 0x408338
test esi, esi
jle 0x408338
lea ecx, [rbx + rsi]
mov eax, ebx
nop dword [rax]
movsxd rdx, eax
add eax, 1
cmp eax, ecx
mov byte [rsp + rdx + 0x70], r13b
jne 0x408550
add ebx, esi
jmp 0x408338
test edi, edi
js 0x408740
test rsi, rsi
je 0x408973
lea r15, [0x0041e097]
test edi, edi
mov ebp, 1
jne 0x40874d
movzx eax, byte [r15]
cmp al, 0x5b
jne 0x40822d
jmp 0x40843f
test ebx, ebx
jle 0x4085e1
lea edi, [rax + 1]
movsxd rdx, eax
sub ebx, 1
mov byte [rsi + rdx], 0x30
movsxd rdx, edi
add eax, 2
mov byte [rsi + rdx], 0x2e
jmp 0x4085dd
movsxd rdx, eax
sub ebx, 1
add eax, 1
mov byte [rsi + rdx], 0x30
test ebx, ebx
jne 0x4085d0
movzx ecx, byte [rsp + 0x90]
lea rdx, [rsp + 0x90]
mov r9d, 1
sub r9d, edx
test cl, cl
je 0x40893d
nop dword [rax]
nop word cs:[rax + rax]
movsxd r8, eax
add eax, 1
mov byte [rsi + r8], cl
lea r8d, [r9 + rdx]
add rdx, 1
movzx ecx, byte [rdx]
test cl, cl
jne 0x408610
jmp 0x4081a1
cmp byte [rsp + 0x3e], 0
je 0x4086f0
cmp byte [rsp + 0x3f], 0
je 0x408720
mov byte [rsp + 0x70], 0x2b
jmp 0x4086f5
mov rcx, qword [rsp + 0x40]
mov rax, rbp
mov edi, edi
mov qword [rsp + 0x50], r15
lea rdx, [rsp + 0x50]
shl rax, 0x20
or rdi, rax
mov qword [rsp + 0x58], rdi
call sym.strconv__remove_tail_zeros
mov rbx, qword [rsp + 0x68]
mov r15, qword [rsp + 0x60]
mov edi, ebx
sar rbx, 0x20
cmp ebp, 0xfa1d05ee
je 0x4088e3
mov ebp, ebx
jmp 0x408239
add eax, 1
mov edi, 0xffffffff
jmp 0x408059
lea ecx, [rbx - 1]
mov eax, ebx
mov rdx, qword [rdi + rax - 8]
cmp ecx, 8
mov qword [rsi + rax - 8], rdx
jb 0x4083b6
and ecx, 0xfffffff8
xor eax, eax
mov edx, eax
add eax, 8
mov r8, qword [rdi + rdx]
cmp eax, ecx
mov qword [rsi + rdx], r8
jb 0x4086cd
jmp 0x4083b6
mov byte [rsp + 0x70], 0x2d
lea r10, [rsp + 0x90]
mov r14d, edi
mov r9d, 1
mov rcx, r10
mov esi, 0xffffffff
mov ebx, 1
jmp 0x4082c7
lea r10, [rsp + 0x90]
mov r14d, edi
xor r9d, r9d
mov rcx, r10
xor esi, esi
xor ebx, ebx
jmp 0x4082c7
lea edi, [r8 + 1]
test rsi, rsi
je 0x408973
lea ecx, [rdi + 1]
movsxd rbx, edi
movsxd rcx, ecx
call sym.malloc_noscan
mov r15, rax
mov r8, rbx
mov rdx, rsi
mov rcx, r15
call sym.memcpy
xor ebp, ebp
mov byte [r15 + rbx], 0
jmp 0x408595
mov edi, dword [rsp + 0x28]
lea ecx, [rax + 1]
movsxd rdx, eax
mov byte [rsi + rdx], 0x2e
mov r8d, ecx
lea edx, [rdi + 1]
add eax, edx
nop word cs:[rax + rax]
movsxd r9, r8d
add r8d, 1
cmp r8d, eax
mov byte [rsi + r9], 0x30
jne 0x4087a0
mov edi, dword [rsp + 0x28]
add edi, ecx
test rsi, rsi
movsxd rbx, edi
mov byte [rsi + rbx], 0
je 0x408973
lea r15, [0x0041e097]
test edi, edi
mov ebp, 1
je 0x408595
add ecx, edx
movsxd rcx, ecx
call sym.malloc_noscan
mov r15, rax
jmp 0x40875e
cmp al, 0x65
jne 0x408420
lea eax, [rcx + 1]
movsxd rdx, eax
movzx edx, byte [r8 + rdx]
jmp 0x408034
mov ecx, 1
mov ebx, 0x1e
call qword [sym.__acrt_iob_func]
lea rdi, str.double_string.free___detected_n
mov rbp, rax
nop word [rax + 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 0x408830
jmp 0x4084fc
mov r15d, 0x1e
mov ecx, 1
call qword [sym.__acrt_iob_func]
lea r11, str.double_string.free___detected_n
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x48], rsi
mov rbx, r11
mov rsi, r15
mov r15, rax
nop word [rax + rax]
mov r8, rsi
mov rcx, rbx
mov r9, r15
mov edx, 1
call sym.fwrite
sub rsi, rax
add rbx, rax
test rsi, rsi
jg 0x408890
mov ebx, dword [rsp + 0x30]
mov rsi, qword [rsp + 0x48]
jmp 0x4080e5
mov ecx, 0x20
xor ebx, ebx
mov r15d, 0x20
call sym.vcalloc_noscan
test rax, rax
mov rsi, rax
jne 0x4080b8
jmp 0x4080d7
mov ecx, 1
mov ebp, 0x1e
call qword [sym.__acrt_iob_func]
lea r14, str.double_string.free___detected_n
mov rsi, rax
nop dword [rax]
mov r8, rbp
mov rcx, r14
mov r9, rsi
mov edx, 1
call sym.fwrite
sub rbp, rax
add r14, rax
test rbp, rbp
jg 0x408900
mov ebp, ebx
jmp 0x408239
mov edi, 0xffffffff
xor r8d, r8d
jmp 0x408178
xor r8d, r8d
jmp 0x4081a1
mov eax, dword [rdi]
mov dword [rsi], eax
mov eax, ebx
mov edx, dword [rdi + rax - 4]
mov dword [rsi + rax - 4], edx
jmp 0x4083b6
mov eax, ebx
movzx edx, word [rdi + rax - 2]
mov word [rsi + rax - 2], dx
jmp 0x4083b6
call sym.string_free.part.28
jmp 0x40842e
call sym.tos.part.37
nop
nop dword [rax]