Function at 0x140007670
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xe0]
sub rsp, 0x1e0
mov r12, rdx
xor edi, edi
mov dword [rsp + 0x30], edi
mov rax, qword [0x1400c9000]
cmp rax, qword [0x1400c9008]
je 0x1400076b9
mov qword [0x1400c9008], rax
lea rax, [0x14009e078]
mov qword [rbp - 0x60], rax
lea rcx, [rbp + 0x50]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
mov dword [rsp + 0x30], 1
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x60]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64__bool____ptr64]
nop
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x60], rax
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx - 0x64], edx
lea rcx, [rbp - 0x50]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
lea rax, vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov qword [rbp - 0x50], rax
mov byte [rbp + 0x2c], 0
mov byte [rbp + 0x21], 0
lea rcx, [rbp - 0x50]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void____ptr64]
mov qword [rbp + 0x30], rdi
mov rax, qword [0x1400c90d0]
mov qword [rbp + 0x24], rax
mov qword [rbp + 0x18], rdi
mov r15, qword [0x1400c60e0]
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, r15
cmp rax, 1
jb 0x140007d6e
lea r13, [0x1400c60d0]
cmp qword [0x1400c60e8], 0xf
cmova r13, qword [0x1400c60d0]
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x78], xmm1
lea r14, [r15 + 1]
mov ebx, 0xf
lea rsi, [rsp + 0x78]
cmp r14, rbx
jbe 0x140007822
mov rbx, r14
or rbx, 0xf
cmp rbx, rcx
jbe 0x1400077e3
mov rbx, rcx
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.140097c60
test rax, rax
je 0x140007a11
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x14000781d
mov eax, 0x16
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x14000780b
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140007d74
jmp 0x1400077c4
test rcx, rcx
je 0x14000781a
call fcn.140097c60
mov rsi, rax
jmp 0x14000781d
mov rsi, rdi
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x78], r14
mov qword [rbp - 0x70], rbx
mov r8, r15
mov rdx, r13
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsi + r15], 0x5c
mov byte [rsi + r14], 0
mov rdx, r12
cmp qword [r12 + 0x18], 0xf
jbe 0x140007851
mov rdx, qword [r12]
mov r8, qword [r12 + 0x10]
lea rcx, [rsp + 0x78]
call fcn.140004dc0
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x68], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x58], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x68], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rsi, qword [rbp + 0x130]
mov rdx, rsi
cmp qword [rsi + 0x18], 0xf
jbe 0x1400078a5
mov rdx, qword [rsi]
mov r8, qword [rsi + 0x10]
lea rcx, [rsp + 0x58]
call fcn.140004dc0
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x48], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x38], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x48], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea rdx, [rsp + 0x38]
cmp qword [rsp + 0x50], 0xf
cmova rdx, qword [rsp + 0x38]
mov r9d, 0x40
lea r8d, [r9 - 0x3f]
lea rcx, [rbp - 0x50]
call fcn.140007d80
xor r8d, r8d
test rax, rax
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x60]
je 0x140007929
add rcx, rax
xor edx, edx
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool____ptr64]
jmp 0x140007938
add rcx, rax
mov edx, 2
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
nop
mov rdx, qword [rsp + 0x50]
cmp rdx, 0xf
jbe 0x140007978
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140007973
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140007973
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140097c9c
movdqa xmm0, xmmword [0x14009deb0]
movdqu xmmword [rsp + 0x48], xmm0
mov byte [rsp + 0x38], 0
mov rdx, qword [rsp + 0x70]
cmp rdx, 0xf
jbe 0x1400079cb
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400079c6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400079c6
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140097c9c
movdqa xmm0, xmmword [0x14009deb0]
movdqu xmmword [rsp + 0x68], xmm0
mov byte [rsp + 0x58], 0
mov rdx, qword [rbp - 0x70]
cmp rdx, 0xf
jbe 0x140007a1d
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140007a18
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140007a18
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140097c9c
cmp qword [rbp + 0x30], 0
jne 0x140007a80
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x60], rax
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx - 0x64], edx
lea rcx, [rbp - 0x50]
call fcn.140006e70
lea rcx, [rbp - 0x48]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x50]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rcx, r12
call fcn.1400046b0
nop
mov rcx, rsi
call fcn.1400046b0
xor al, al
jmp 0x140007d53
lea rdx, [rbp + 0x138]
lea rcx, [rbp - 0x60]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_istream_char__struct_std::char_traits_char__::operator___float____ptr64____ptr64]
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::operator_bool_void_const___ptr64]
test al, al
je 0x140007b0e
nop word [rax + rax]
mov rdx, qword [0x1400c9008]
cmp rdx, qword [0x1400c9010]
je 0x140007ad6
movss xmm0, dword [rbp + 0x138]
movss dword [rdx], xmm0
add qword [0x1400c9008], 4
jmp 0x140007ae9
lea r8, [rbp + 0x138]
lea rcx, [0x1400c9000]
call fcn.1400068b0
lea rdx, [rbp + 0x138]
lea rcx, [rbp - 0x60]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_istream_char__struct_std::char_traits_char__::operator___float____ptr64____ptr64]
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::operator_bool_void_const___ptr64]
test al, al
jne 0x140007ab0
lea rcx, [rbp - 0x50]
cmp qword [rbp + 0x30], 0
je 0x140007c4f
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::eback_void_const___ptr64]
lea rcx, [rbp + 0x20]
cmp rax, rcx
jne 0x140007b41
mov r9, qword [rbp + 0x40]
mov rdx, qword [rbp + 0x38]
mov r8, rdx
lea rcx, [rbp - 0x50]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::setg_char____ptr64__char____ptr64__char____ptr64____ptr64]
cmp qword [rbp + 0x18], 0
je 0x140007bba
cmp byte [rbp + 0x21], 0
je 0x140007bba
mov rax, qword [rbp - 0x50]
mov r8, qword [rax + 0x18]
lea rax, [fcn.140007ec0]
mov edx, 0xffffffff
lea rcx, [rbp - 0x50]
cmp r8, rax
jne 0x140007b72
call fcn.140007ec0
jmp 0x140007b75
call r8
cmp eax, 0xffffffff
jne 0x140007b7e
xor bl, bl
jmp 0x140007bbc
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0xd8]
lea r8, [rbp + 0xb8]
lea rdx, [rbp + 0x24]
mov rcx, qword [rbp + 0x18]
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::unshift_struct__Mbstatet____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x140007c09
sub eax, 1
je 0x140007c0d
cmp eax, 2
je 0x140007bb6
xor bl, bl
jmp 0x140007bbc
mov byte [rbp + 0x21], 0
mov bl, 1
mov rcx, qword [rbp + 0x30]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
lea rcx, [rbp - 0x50]
test bl, bl
cmove rcx, rdi
mov rbx, rdi
test eax, eax
cmove rbx, rcx
mov byte [rbp + 0x2c], 0
mov byte [rbp + 0x21], 0
lea rcx, [rbp - 0x50]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void____ptr64]
mov qword [rbp + 0x30], rdi
mov rax, qword [0x1400c90d0]
mov qword [rbp + 0x24], rax
mov qword [rbp + 0x18], rdi
test rbx, rbx
jne 0x140007c8c
jmp 0x140007c70
mov byte [rbp + 0x21], 0
lea rax, [rbp + 0xb8]
mov rbx, qword [rsp + 0x30]
sub rbx, rax
je 0x140007c43
mov r9, qword [rbp + 0x30]
mov r8, rbx
mov edx, 1
lea rcx, [rbp + 0xb8]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rbx, rax
je 0x140007c43
xor bl, bl
jmp 0x140007bbc
cmp byte [rbp + 0x21], 0
sete bl
jmp 0x140007bbc
mov byte [rbp + 0x2c], 0
mov byte [rbp + 0x21], 0
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void____ptr64]
mov qword [rbp + 0x30], rdi
mov rax, qword [0x1400c90d0]
mov qword [rbp + 0x24], rax
mov qword [rbp + 0x18], rdi
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x60]
add rcx, rax
xor r8d, r8d
lea edx, [r8 + 2]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
xorps xmm1, xmm1
mov rax, qword [0x1400c9008]
mov rcx, qword [0x1400c9000]
mov rdx, rax
sub rdx, rcx
sar rdx, 2
test rdx, rdx
je 0x140007cd5
sub rax, rcx
sar rax, 2
movss xmm2, dword [0x1400c6140]
nop dword [rax + rax]
movss xmm0, dword [rcx + rdi*4]
divss xmm0, xmm2
addss xmm1, xmm0
inc rdi
cmp rdi, rax
jb 0x140007cc0
shr rdx, 1
mov dword [0x1400c9098], edx
movd xmm0, edx
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
mulss xmm0, dword [0x14009e098]
cvtps2pd xmm0, xmm0
movsd qword [0x1400c90a0], xmm0
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x60], rax
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx - 0x64], edx
lea rcx, [rbp - 0x50]
call fcn.140006e70
lea rcx, [rbp - 0x48]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x50]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rcx, r12
call fcn.1400046b0
nop
mov rcx, rsi
call fcn.1400046b0
mov al, 1
mov rbx, qword [rsp + 0x220]
add rsp, 0x1e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140004d80
nop
call fcn.140004c70
int3