Function at 0x140002ea0
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x2c0]
sub rsp, 0x3c0
xor r15d, r15d
mov dword [rbp + 0x2f0], r15d
mov edx, 0x7b66be11
mov rcx, qword [0x140038200]
call fcn.140003740
mov r8d, 0x104
lea rdx, [rbp + 0x1b0]
xor ecx, ecx
call rax
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], 0xf
mov byte [rsp + 0x30], r15b
lea rax, [rbp + 0x1b0]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], r15b
jne 0x140002f13
lea rdx, [rbp + 0x1b0]
lea rcx, [rsp + 0x30]
call fcn.1400038b0
nop
lea rbx, [rsp + 0x30]
mov rsi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x48]
cmp r14, 0x10
cmovae rbx, rsi
mov rdi, qword [rsp + 0x40]
test rdi, rdi
je 0x140002fe1
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xb0], xmm0
movups xmmword [rbp + 0xc0], xmm0
movups xmmword [rbp + 0xd0], xmm0
movups xmmword [rbp + 0xe0], xmm0
movups xmmword [rbp + 0xf0], xmm0
mov qword [rbp + 0x100], rax
mov dword [rbp + 0x108], eax
xor edx, edx
mov r8d, 0xa3
lea rcx, [rbp + 0x10d]
call fcn.140008a90
mov byte [rbp + 0x10c], 1
lea rax, [rdi - 1]
mov r8, 0xffffffffffffffff
cmp rax, r8
cmovb r8, rax
add r8, rbx
movzx eax, byte [r8]
cmp byte [rbp + rax + 0xb0], 0
jne 0x140002fdc
cmp r8, rbx
je 0x140002fe1
dec r8
movzx eax, byte [r8]
cmp byte [rbp + rax + 0xb0], 0
je 0x140002fc6
sub r8, rbx
jmp 0x140002fe8
mov r8, 0xffffffffffffffff
mov qword [rbp + 0x60], r15
mov qword [rbp + 0x70], r15
mov qword [rbp + 0x78], 0xf
inc r8
cmp rdi, r8
cmovb r8, rdi
lea rdx, [rsp + 0x30]
cmp r14, 0x10
cmovae rdx, rsi
lea rcx, [rbp + 0x60]
call fcn.1400038b0
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x140003055
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003050
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000361b
call fcn.1400064ac
movups xmm0, xmmword [rbp + 0x60]
movups xmmword [rsp + 0x30], xmm0
movups xmm1, xmmword [rbp + 0x70]
movups xmmword [rsp + 0x40], xmm1
movdqa xmm0, xmm1
psrldq xmm0, 8
movq rax, xmm0
movq rcx, xmm1
sub rax, rcx
cmp rax, 8
jb 0x1400030b2
lea rax, [rcx + 8]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rax, qword [rsp + 0x30]
movabs rdx, 0x7365722e61746144
mov qword [rcx + rax], rdx
mov byte [rcx + rax + 8], 0
jmp 0x1400030d3
mov qword [rsp + 0x20], 8
lea r9, str.Data.res
xor r8d, r8d
lea edx, [r8 + 8]
lea rcx, [rsp + 0x30]
call fcn.140001210
lea rax, [0x1400257d8]
mov qword [rsp + 0x50], rax
mov qword [rbp + 8], r15
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x30], xmm0
mov qword [rbp + 0x40], r15
lea rax, vtable.std::basic_ios_char__struct_std::char_traits_char__.0
mov qword [rbp], rax
mov dword [rbp + 0x2f0], 3
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x50]
call fcn.1400015c0
nop
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea r12, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x50], r12
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x4c], edx
lea rax, vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
mov qword [rsp + 0x60], rax
mov ecx, 0x10
call fcn.140006470
mov rbx, rax
test rax, rax
je 0x14000316d
mov cl, 1
call fcn.14000587c
mov qword [rbx + 8], rax
jmp 0x140003170
mov rbx, r15
mov qword [rbp - 0x40], rbx
lea rax, vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov qword [rsp + 0x60], rax
mov byte [rbp - 0x24], 0
mov byte [rbp - 0x2f], 0
lea rax, [rsp + 0x68]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x70]
mov qword [rbp - 0x80], rax
lea rax, [rbp - 0x78]
mov qword [rbp - 0x68], rax
lea rax, [rbp - 0x70]
mov qword [rbp - 0x60], rax
lea rax, [rbp - 0x58]
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x54]
mov qword [rbp - 0x48], rax
mov qword [rsp + 0x70], r15
mov qword [rbp - 0x70], r15
mov qword [rbp - 0x58], r15
mov qword [rsp + 0x68], r15
mov qword [rbp - 0x78], r15
mov qword [rbp - 0x20], r15
mov rax, qword [0x140038218]
mov qword [rbp - 0x2c], rax
mov qword [rbp - 0x38], r15
lea rdx, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rdx, qword [rsp + 0x30]
mov r9d, 0x40
lea r8d, [r9 - 0x1e]
lea rcx, [rsp + 0x50]
call fcn.140004260
cmp qword [rbp - 0x20], 0
je 0x14000355b
mov r14d, 2
mov r8d, r14d
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.1400047e0
lea rax, [rsp + 0x50]
mov qword [rbp + 0x88], rax
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx - 0x68]
test rcx, rcx
je 0x14000324f
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov dl, 1
lea rcx, [rsp + 0x50]
call fcn.140002a30
mov byte [rbp + 0x90], al
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
test byte [rsp + rcx + 0x60], 6
jne 0x1400032a2
mov rcx, qword [rbp + rcx - 0x68]
mov rax, qword [rcx]
mov dword [rsp + 0x20], 1
mov r9d, 1
xor r8d, r8d
lea rdx, [rbp + 0x60]
call qword [rax + 0x50]
nop
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx - 0x68]
jmp 0x1400032ba
mov qword [rbp + 0x60], 0xffffffffffffffff
xorps xmm0, xmm0
movups xmmword [rbp + 0x68], xmm0
movsxd rax, dword [rax + 4]
mov rcx, qword [rbp + rax - 0x68]
test rcx, rcx
je 0x1400032c6
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov ebx, dword [rbp + 0x60]
add ebx, dword [rbp + 0x68]
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.1400047e0
movsxd rbx, ebx
mov rcx, rbx
call fcn.1400064b4
mov rdi, rax
cmp qword [rbp - 0x20], 0
je 0x1400034b4
mov r8, rbx
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.140004690
cmp qword [rbp - 0x20], 0
je 0x1400033c1
mov rax, qword [rsp + 0x78]
lea rcx, [rbp - 0x30]
cmp qword [rax], rcx
jne 0x140003339
mov r8, qword [rbp - 0x10]
mov rcx, qword [rbp - 0x18]
mov qword [rax], rcx
mov rax, qword [rbp - 0x68]
mov qword [rax], rcx
sub r8d, ecx
mov rax, qword [rbp - 0x50]
mov dword [rax], r8d
cmp qword [rbp - 0x38], 0
je 0x1400033a7
cmp byte [rbp - 0x2f], 0
je 0x1400033a7
mov edx, 0xffffffff
lea rcx, [rsp + 0x60]
mov rax, qword [rsp + 0x60]
call qword [rax + 0x18]
cmp eax, 0xffffffff
jne 0x140003361
xor al, al
jmp 0x1400033a9
mov rcx, qword [rbp - 0x38]
mov rax, qword [rcx]
lea rdx, [rbp + 0x2f0]
mov qword [rsp + 0x20], rdx
lea r9, [rbp + 0xa8]
lea r8, [rbp + 0x88]
lea rdx, [rbp - 0x2c]
call qword [rax + 0x40]
test eax, eax
je 0x14000346d
sub eax, 1
je 0x140003471
cmp eax, 2
je 0x1400033a3
xor al, al
jmp 0x1400033a9
mov byte [rbp - 0x2f], 0
mov al, 1
lea rsi, [rsp + 0x60]
test al, al
cmove rsi, r15
mov rcx, qword [rbp - 0x20]
call fcn.14000cea8
test eax, eax
je 0x1400033c4
mov rsi, r15
mov byte [rbp - 0x24], 0
mov byte [rbp - 0x2f], 0
lea rax, [rsp + 0x68]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x70]
mov qword [rbp - 0x80], rax
lea rax, [rbp - 0x78]
mov qword [rbp - 0x68], rax
lea rax, [rbp - 0x70]
mov qword [rbp - 0x60], rax
lea rax, [rbp - 0x58]
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x54]
mov qword [rbp - 0x48], rax
mov qword [rsp + 0x70], r15
mov qword [rbp - 0x70], r15
mov qword [rbp - 0x58], r15
mov qword [rsp + 0x68], r15
mov qword [rbp - 0x78], r15
mov qword [rbp - 0x20], r15
mov rax, qword [0x140038218]
mov qword [rbp - 0x2c], rax
mov qword [rbp - 0x38], r15
test rsi, rsi
jne 0x1400034b4
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
mov eax, 6
cmp qword [rbp + rcx - 0x68], rsi
cmovne eax, r14d
or eax, dword [rsp + rcx + 0x60]
and eax, 0x17
mov dword [rsp + rcx + 0x60], eax
and eax, dword [rsp + rcx + 0x64]
je 0x1400034b4
test al, 4
je 0x140003621
lea rbx, str.ios_base::badbit_set
jmp 0x140003635
mov byte [rbp - 0x2f], 0
lea rax, [rbp + 0x88]
mov rsi, qword [rbp + 0x2f0]
sub rsi, rax
je 0x1400034a8
mov r9, qword [rbp - 0x20]
mov r8, rsi
mov edx, 1
lea rcx, [rbp + 0x88]
call fcn.14000dce4
cmp rsi, rax
je 0x1400034a8
xor al, al
jmp 0x1400033a9
cmp byte [rbp - 0x2f], 0
sete al
jmp 0x1400033a9
mov edx, 0x653266b
mov rcx, qword [0x140038200]
call fcn.140003740
mov r9d, 0x40
mov r8d, 0x3000
mov rdx, rbx
xor ecx, ecx
call rax
mov rsi, rax
mov rcx, rax
cmp rax, rdi
jae 0x140003502
test rbx, rbx
je 0x140003533
sub rdi, rax
nop dword [rax + rax]
movzx eax, byte [rdi + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rbx, 1
jne 0x1400034f0
jmp 0x140003533
lea rcx, [rbx - 1]
add rcx, rdi
lea rdx, [rbx - 1]
add rdx, rsi
test rbx, rbx
je 0x140003533
nop word [rax + rax]
movzx eax, byte [rcx]
mov byte [rdx], al
lea rdx, [rdx - 1]
lea rcx, [rcx - 1]
sub rbx, 1
jne 0x140003520
mov edx, 0x9a1b297c
mov rcx, qword [0x140038200]
call fcn.140003740
mov edx, 0x400
mov r9d, 0x15
mov r8d, 0xffffffff
mov rcx, rsi
call rax
nop
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x50], r12
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x4c], edx
lea rcx, [rsp + 0x60]
call fcn.140001dc0
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x50], rax
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rsp + rcx + 0x4c], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp], rax
lea rcx, [rbp]
call fcn.140005ef4
nop
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x1400035f9
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400035f4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003615
call fcn.1400064ac
lea r11, [rsp + 0x3c0]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call fcn.14000c7cc
nop
call fcn.14000c7cc
nop
test al, 2
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rbp + 0x88]
call fcn.1400041b0
mov r8, rax
mov rdx, rbx
lea rcx, [rbp + 0x60]
call fcn.140001c30
lea rdx, [0x140035ba0]
lea rcx, [rbp + 0x60]
call fcn.140007510
int3