Function at 0x14002c070
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
movzx r12d, byte [rsp + 0x120]
mov ebp, dword [rsp + 0x100]
comisd xmm1, xmm0
mov rsi, rcx
mov r14d, r8d
mov edi, r9d
ja 0x14002c0ae
xorpd xmm1, xmmword [0x14003d950]
movabs rax, 0xfffffffffffff
movq r13, xmm1
mov r8, r13
and rax, r13
shr r8, 0x34
and r8d, 0x7ff
cmp r8, 0x7ff
je 0x14002c4c0
mov rdx, rax
or rdx, r8
je 0x14002c1a0
lea rdx, [r8 - 0x3ff]
cmp rdx, 0x34
ja 0x14002c119
mov r9, rax
mov ecx, 0x34
bts r9, 0x34
sub rcx, rdx
mov rdx, r9
shr rdx, cl
mov rbx, rdx
shl rbx, cl
cmp r9, rbx
je 0x14002c530
lea rbx, [rsp + 0x40]
mov rdx, rax
mov rcx, rbx
call sym.strconv__f64_to_decimal.lto_priv.0
mov rdx, qword [rsp + 0x40]
mov r8d, dword [rsp + 0x48]
mov dword [rsp + 0x28], ebp
mov r9, r13
mov rcx, rbx
mov dword [rsp + 0x20], ebp
shr r9, 0x3f
call sym.strconv__Dec64_get_string_64.isra.0
mov r8, qword [rsp + 0x48]
mov r10, qword [rsp + 0x40]
mov r13, r8
mov ebp, r8d
sar r13, 0x20
mov r15d, r13d
test r12b, r12b
je 0x14002c1d9
mov rdx, r10
mov rcx, rbx
call sym.strconv__remove_tail_zeros.isra.0
mov r8, qword [rsp + 0x48]
mov r10, qword [rsp + 0x40]
mov rbx, r8
mov ebp, r8d
sar rbx, 0x20
cmp r13d, 0xfa1d05ee
je 0x14002c5f5
mov r15d, ebx
jmp 0x14002c1d9
mov rax, r13
mov ebp, 6
lea r11, str.0e00
sar rax, 0x3f
cmp eax, 1
lea rax, str._0e00
sbb ebp, 0
test r13, r13
cmovns rax, r11
mov r10, rax
mov r15d, 1
test r12b, r12b
jne 0x14002c501
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 r14b, 0x30
je 0x14002c400
cmp byte [rsp + 0x108], 0
je 0x14002c448
cmp byte [rsp + 0x110], 0
jne 0x14002c5a0
mov qword [rsp + 0x30], 0
lea r13, [rsp + 0x50]
mov ebx, ebp
xor r12d, r12d
mov rcx, r13
movsxd r8, ebp
mov rdx, r10
call sym.memcpy
mov eax, dword [rsp + 0x118]
mov r11d, edi
movsxd r8, ebx
sub r11d, ebx
test eax, eax
jne 0x14002c3a0
test r11d, r11d
jle 0x14002c5d8
lea ecx, [r12 + r11]
mov eax, r12d
nop word cs:[rax + rax]
movsxd rdx, eax
add eax, 1
mov byte [rsp + rdx + 0x70], r14b
cmp eax, ecx
jne 0x14002c2a0
lea edi, [r11 + r12]
lea rbp, [rsp + 0x70]
mov rdx, r13
movsxd rcx, edi
add ebx, edi
add rcx, rbp
call sym.memcpy
movsxd rbx, ebx
mov rcx, rbp
mov byte [rsp + rbx + 0x70], 0
call sym.strlen
mov rbx, rax
test rax, rax
je 0x14002c340
lea ecx, [rax + 1]
mov r12d, eax
movsxd rcx, ecx
call sym.malloc_noscan
mov rdi, rax
cmp ebx, 8
jae 0x14002c470
test bl, 4
jne 0x14002c64d
test ebx, ebx
jne 0x14002c5b0
mov byte [rdi + rbx], 0
xor ebp, ebp
cmp r15d, 0xfa1d05ee
je 0x14002c358
mov rax, rsi
mov qword [rsi], rdi
mov dword [rsi + 8], r12d
mov dword [rsi + 0xc], ebp
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ebp, 1
xor r12d, r12d
lea rdi, [0x14003d126]
cmp r15d, 0xfa1d05ee
jne 0x14002c31a
mov ecx, 1
lea r14, str.double_string.free___detected_n
mov ebx, 0x1e
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov r13, rax
nop word [rax + rax]
mov r8, rbx
mov rcx, r14
mov r9, r13
mov edx, 1
call sym.fwrite
sub rbx, rax
add r14, rax
test rbx, rbx
jg 0x14002c378
jmp 0x14002c31a
mov rcx, qword [rsp + 0x30]
lea rbp, [rsp + 0x70]
mov rdx, r13
add ebx, r12d
mov dword [rsp + 0x3c], r11d
add rcx, rbp
call sym.memcpy
cmp dword [rsp + 0x118], 1
jne 0x14002c2c8
mov r11d, dword [rsp + 0x3c]
test r11d, r11d
jle 0x14002c2c8
add r11d, ebx
nop dword [rax]
movsxd rax, ebx
add ebx, 1
mov byte [rsp + rax + 0x70], r14b
cmp r11d, ebx
jne 0x14002c3e0
lea ebx, [r12 + rdi]
jmp 0x14002c2c8
cmp byte [rsp + 0x108], 0
je 0x14002c590
cmp byte [rsp + 0x110], 0
je 0x14002c24d
mov byte [rsp + 0x70], 0x2b
lea r13, [rsp + 0x50]
sub edi, 1
mov ebx, ebp
mov r12d, 1
mov qword [rsp + 0x30], 1
mov rcx, r13
jmp 0x14002c263
mov byte [rsp + 0x50], 0x2d
mov qword [rsp + 0x30], 0
lea ebx, [rbp + 1]
lea rcx, [rsp + 0x51]
xor r12d, r12d
lea r13, [rsp + 0x50]
jmp 0x14002c263
mov rax, qword [rsp + 0x70]
lea r8, [rdi + 8]
and r8, 0xfffffffffffffff8
mov qword [rdi], rax
mov eax, ebx
mov rdx, qword [rbp + rax - 8]
mov qword [rdi + rax - 8], rdx
mov rax, rdi
sub rax, r8
sub rbp, rax
add eax, ebx
and eax, 0xfffffff8
cmp eax, 8
jb 0x14002c30b
and eax, 0xfffffff8
xor edx, edx
mov ecx, edx
add edx, 8
mov r9, qword [rbp + rcx]
mov qword [r8 + rcx], r9
cmp edx, eax
jb 0x14002c4a8
jmp 0x14002c30b
mov ebp, 3
lea r10, [0x14003d41c]
test rax, rax
jne 0x14002c1ca
test r13, r13
mov ebp, 4
lea r11, str.inf
mov r15d, 1
lea rax, str._inf
cmovns rax, r11
mov r10, rax
test r12b, r12b
je 0x14002c1d9
mov r8d, ebp
mov rdx, r10
lea rcx, [rsp + 0x40]
call sym.strconv__remove_tail_zeros.isra.0
mov r8, qword [rsp + 0x48]
mov r10, qword [rsp + 0x40]
mov ebp, r8d
shr r8, 0x20
mov r15d, r8d
jmp 0x14002c1d9
movabs rcx, 0xcccccccccccccccd
mov rax, rdx
xor r8d, r8d
movabs r9, 0x1999999999999999
imul rax, rcx
ror rax, 1
cmp r9, rax
jb 0x14002c57d
nop word cs:[rax + rax]
mov rax, rdx
add r8d, 1
mul rcx
shr rdx, 3
mov rax, rdx
imul rax, rcx
ror rax, 1
cmp r9, rax
jae 0x14002c560
lea rbx, [rsp + 0x40]
jmp 0x14002c133
mov byte [rsp + 0x70], 0x2d
jmp 0x14002c421
mov byte [rsp + 0x50], 0x2b
jmp 0x14002c44d
movzx eax, byte [rsp + 0x70]
mov byte [rdi], al
test bl, 2
je 0x14002c30b
mov eax, ebx
movzx edx, word [rbp + rax - 2]
mov word [rdi + rax - 2], dx
jmp 0x14002c30b
mov rcx, qword [rsp + 0x30]
lea rbp, [rsp + 0x70]
mov rdx, r13
add ebx, r12d
add rcx, rbp
call sym.memcpy
jmp 0x14002c2c8
mov qword [rsp + 0x30], r10
mov ecx, 1
lea r15, str.double_string.free___detected_n
mov r13d, 0x1e
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov r10, qword [rsp + 0x30]
mov r12, rax
nop word [rax + rax]
mov r8, r13
mov rcx, r15
mov r9, r12
mov edx, 1
mov qword [rsp + 0x30], r10
call sym.fwrite
mov r10, qword [rsp + 0x30]
sub r13, rax
add r15, rax
test r13, r13
jg 0x14002c620
jmp 0x14002c192
mov eax, dword [rsp + 0x70]
mov dword [rdi], eax
mov eax, ebx
mov edx, dword [rbp + rax - 4]
mov dword [rdi + rax - 4], edx
jmp 0x14002c30b