Function at 0x1400202c0
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
mov esi, dword [rsp + 0x100]
comisd xmm1, xmm0
mov rdi, rcx
mov ebp, r8d
mov ebx, r9d
ja 0x1400202f5
xorpd xmm1, xmmword [0x14002c250]
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 0x140020710
mov rax, r9
or rax, r8
je 0x1400203c8
lea rax, [r8 - 0x3ff]
cmp rax, 0x34
ja 0x140020750
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 0x140020750
movabs r10, 0xcccccccccccccccd
mov rax, rdx
movabs r11, 0x1999999999999999
imul rax, r10
ror rax, 1
cmp r11, rax
jb 0x14002089d
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 0x140020398
lea r12, [rsp + 0x40]
jmp 0x14002076a
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 + 0x120], 0
jne 0x140020680
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 0x140020610
cmp byte [rsp + 0x108], 0
je 0x140020650
cmp byte [rsp + 0x110], 0
jne 0x1400207c0
lea r14, [rsp + 0x50]
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 sub.ucrtbase.dll_memcpy
mov eax, dword [rsp + 0x118]
add ebx, r15d
movsxd r9, esi
test eax, eax
jne 0x1400205c0
test ebx, ebx
jle 0x1400207f8
lea r15, [rsp + 0x70]
movsxd rcx, r13d
mov r8d, ebx
movzx edx, bpl
add rcx, r15
add ebx, r13d
mov qword [rsp + 0x30], r9
call sub.ucrtbase.dll_memset
mov r8, qword [rsp + 0x30]
movsxd rcx, ebx
mov rdx, r14
add rcx, r15
add esi, ebx
call sub.ucrtbase.dll_memcpy
movsxd rsi, esi
mov rcx, r15
mov byte [rsp + rsi + 0x70], 0
call sub.ucrtbase.dll_strlen
mov rbx, rax
test rax, rax
je 0x140020560
lea ecx, [rax + 1]
mov ebp, eax
movsxd rcx, ecx
call fcn.140011790
mov rsi, rax
cmp ebx, 8
jae 0x1400206c0
test bl, 4
jne 0x140020887
test ebx, ebx
jne 0x1400207d0
mov byte [rsi + rbx], 0
xor r13d, r13d
cmp r12d, 0xfa1d05ee
je 0x140020578
mov rax, rdi
mov qword [rdi], rsi
mov dword [rdi + 8], ebp
mov dword [rdi + 0xc], r13d
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r13d, 1
xor ebp, ebp
lea rsi, [0x14002bed8]
cmp r12d, 0xfa1d05ee
jne 0x14002053a
mov ecx, 1
lea r14, str.double_string.free___detected_n
mov ebx, 0x1e
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov r12, rax
nop word [rax + rax]
mov r8, rbx
mov rcx, r14
mov r9, r12
mov edx, 1
call sub.ucrtbase.dll_fwrite
sub rbx, rax
add r14, rax
test rbx, rbx
jg 0x140020598
jmp 0x14002053a
mov rcx, qword [rsp + 0x30]
lea r15, [rsp + 0x70]
mov r8, r9
mov rdx, r14
add esi, r13d
add rcx, r15
call sub.ucrtbase.dll_memcpy
cmp dword [rsp + 0x118], 1
jne 0x1400204e8
test ebx, ebx
jle 0x1400204e8
movsxd rcx, esi
movzx edx, bpl
mov r8d, ebx
add esi, ebx
add rcx, r15
call sub.ucrtbase.dll_memset
jmp 0x1400204e8
cmp byte [rsp + 0x108], 0
jne 0x1400207a0
mov eax, 0x2d
lea r14, [rsp + 0x50]
mov byte [rsp + 0x70], al
mov esi, r10d
mov r15d, 0xffffffff
mov qword [rsp + 0x30], 1
mov rcx, r14
mov r13d, 1
jmp 0x14002048a
mov byte [rsp + 0x50], 0x2d
lea esi, [r10 + 1]
lea rcx, [rsp + 0x51]
xor r15d, r15d
xor r13d, r13d
mov qword [rsp + 0x30], 0
lea r14, [rsp + 0x50]
jmp 0x14002048a
mov r8d, r10d
mov rdx, r11
lea rcx, [rsp + 0x40]
call fcn.14001d350
mov rax, qword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
mov r10d, eax
sar rax, 0x20
mov rsi, rax
cmp r12d, 0xfa1d05ee
je 0x140020818
mov r12d, esi
jmp 0x1400203fc
mov rax, qword [rsp + 0x70]
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 0x14002052a
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 0x1400206f8
jmp 0x14002052a
mov r12d, 1
mov r10d, 3
lea r11, [0x14002c0df]
test r9, r9
jne 0x1400203ee
test r13b, r13b
lea r11, str.inf
lea rax, str._inf
mov r10d, 4
cmovne r11, rax
jmp 0x1400203ee
lea r12, [rsp + 0x40]
mov rdx, r9
mov rcx, r12
call fcn.14000d630
mov rdx, qword [rsp + 0x40]
mov r8d, dword [rsp + 0x48]
mov dword [rsp + 0x28], esi
mov rcx, r12
mov r9d, r13d
mov dword [rsp + 0x20], esi
call fcn.140020000
mov rax, qword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
mov r10d, eax
shr rax, 0x20
mov r12, rax
jmp 0x1400203ee
cmp byte [rsp + 0x110], 0
mov eax, 0x2b
jne 0x140020623
jmp 0x140020470
mov byte [rsp + 0x50], 0x2b
jmp 0x140020655
movzx eax, byte [rsp + 0x70]
mov byte [rsi], al
test bl, 2
je 0x14002052a
mov eax, ebx
movzx edx, word [r15 + rax - 2]
mov word [rsi + rax - 2], dx
jmp 0x14002052a
mov rcx, qword [rsp + 0x30]
lea r15, [rsp + 0x70]
mov r8, r9
mov rdx, r14
add esi, r13d
add rcx, r15
call sub.ucrtbase.dll_memcpy
jmp 0x1400204e8
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 [sym.imp.ucrtbase.dll___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 sub.ucrtbase.dll_fwrite
mov r10d, dword [rsp + 0x30]
mov r11, qword [rsp + 0x38]
sub r13, rax
add r14, rax
test r13, r13
jg 0x140020850
jmp 0x1400206b1
mov eax, dword [rsp + 0x70]
mov dword [rsi], eax
mov eax, ebx
mov edx, dword [r15 + rax - 4]
mov dword [rsi + rax - 4], edx
jmp 0x14002052a
xor r8d, r8d
jmp 0x1400203b8